Hi all,
Has anyone gotten gstreamer working on a DM6467 such that it decodes anything but a raw file? If so, would anyone be willing to share the example .ts/.avi file they used? I'm trying to get gstreamer running to see what it can currently do on a DM6467. I can build the latest release and successfully decode video raw files, but am not having luck with files in multimedia wrappers (for reasons explained below, the file provided previously for the DM355 in this forum doesn't work for me on the DM6467). I tried posting the following to the gstreamer.ti.com forum two weeks ago, but no luck so far. If anyone can provide any example files, that would be very helpful. Thanks!
[Original post on gstreamer.ti.com follows]:
---------------------------------------------
I'm working on running gstreamer on the DM6467 (on top of DVSDK 2.00.00.22). I downloaded version 1.00.02 and was able to build it and get a raw video file to play.
Right now I'm trying to get any of the media formats (.avi or .ts) to play okay.
First, I tried the "tr48.avi" file provided by Juan Gonzales used to verify gstreamer on the DM355 (provided in the following link: http://e2e.ti.com/forums/p/935/6558.aspx#6558). I found that I couldn't play this MPEG-4 + MP3 file because the default codec combination provided in DVSDK 2.00.00.22 for the DM6467 doesn't support MPEG-4 or MP3 decode (it has MPEG-2 decode, H264 decode, G711 decode, and AAC-HE decode from what I can tell).
I then set out to generate a working .avi myself using the same method described in the forum -- I took a known good .264 file from the DVSDK ("davincieffect_ntsc.264") and a known good .aac file ("davincieffect.aac") and made an avi file from it using FFMPEG using the following command:
ffmpeg -i davincieffect_ntsc.264 -i davincieffect.aac -vcodec copy -acodec copy davincieffect_h264_aac.avi
Then, I tried playing it within /opt/gstreamer_demo with the following command:
./decode_avi.sh -f davincieffect_h264_aac.avi -mad
This resulted in the following message:
root@10.20.31.145:/opt/gstreamer_demo/dm6467# ./decode_avi.sh -f davincieffect_h264_aac.avi
../shared/decode_avi.sh: line 19: /dev/fb/2: No such file or directory
gst-inspect TIViddec2
gst-inspect TIAuddec
gst-inspect osssink
*********** Pipeline Settings *************
platform = dm6467
audio_plugin = TIAuddec
audio_plugin_args =
soundStd = oss
video_plugin = TIViddec2
video_plugin_args =
dispStd = v4l2
dispDevice = /dev/video2
videoStd = 1080P_30
videoOutput = COMPONENT
resizer = FALSE
accelFrameCopy = TRUE
gst-launch --gst-debug-no-color --gst-debug=TI*:2 filesrc location=davincieffect_h264_aac.avi ! typefind ! avidemux name=demux demux.audio_00 ! queue max-size-buffers=1200 max-size-time=0 max-size-bytes=0 ! typefind ! TIAuddec ! audioconvert ! osssink demux.video_00 ! typefind ! TIViddec2 ! TIDmaiVideoSink displayStd=v4l2 displayDevice=/dev/video2 videoStd=1080P_30 videoOutput=COMPONENT resizer=FALSE accelFrameCopy=TRUE
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
It seems as if things are okay, but then things stop at PREROLLING and never get to PLAYING.
Thinking this might be an issue of trying to include AAC in .avi (generally I've seen mainly MP3 in .avi), I tried using .ts:
ffmpeg -i davincieffect_ntsc.264 -i davincieffect.aac -vcodec copy -acodec copy davincieffect_h264_aac.ts
and then playing it with the command:
./decode_ts.sh -f davincieffect_h264_aac.ts -a mad
Here, things seem a little better. I get past PREROLLING, but get an "Internal data flow error":
root@10.20.31.145:/opt/gstreamer_demo/dm6467# ./decode_ts.sh -f davincieffect_h264_aac.ts -a mad
../shared/decode_ts.sh: line 19: /dev/fb/2: No such file or directory
gst-inspect TIViddec2
gst-inspect mad
gst-inspect osssink
*********** Pipeline Settings *************
platform = dm6467
audio_plugin = mad
audio_plugin_args = soundStd = oss
video_plugin = TIViddec2
video_plugin_args =
dispStd = v4l2
dispDevice = /dev/video2
videoStd = 1080P_30
videoOutput = COMPONENT
resizer = FALSE
accelFrameCopy = TRUE
gst-launch --gst-debug-no-color --gst-debug=TI*:2 filesrc location=davincieffect_h264_aac.ts ! typefind ! mpegtsdemux name=demux demux. ! audio/mpeg ! queue max-size-buffers=1200 max-size-time=0 max-size-bytes=0 ! typefind ! mad ! audioconvert ! osssink demux. ! video/x-h264 ! typefind ! TIViddec2 ! TIDmaiVideoSink displayStd=v4l2 displayDevice=/dev/video2 videoStd=1080P_30 videoOutput=COMPONENT resizer=FALSE accelFrameCopy=TRUE
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
0:00:01.255276996 933 0x5f598 WARN TIViddec2 gsttividdec2.c:1597:gst_tividdec2_frame_duration: framerate not specified; using 29.97fps
(gst-launch-0.10:933): GStreamer-CRITICAL **: gst_value_get_mini_object: assertion `GST_VALUE_HOLDS_MINI_OBJECT (value)' failed
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2234): gst_base_src_loop (): /GstPipeline:pipeline0/GstFileSrc:file src0:streaming task paused, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
CMEMK Error: FREE: Not a registered user of physical buffer 0x8b60b000
CMEM Error: free: failed to freeCMEMK Error: FREE: Not a registered user of physical buffer 0x8b2be000 0x42fb3000
CMEMK Error: FREE: Not a registered user of physical buffer 0x8af71000
CMEM Error: free: failed to freeCMEMK Error: FREE: Not a registered user of physical buffer 0x8ac24000 0x433a8000
CMEM Error: free: fCMEMK Error: FREE: Not a registered user of physical buffer 0x8a8d7000 failed to free 0x436f5000
CMEM ECMEMK Error: FREE: Not a registered user of physical buffer 0x8a58a000 Error: free: failed to free 0x43a42000
CMEM Error: free: failed to free 0x43d8f000
CMEM Error: free: failed to free 0x440dc000
FREEING pipeline ...
I noticed, looking at "release_test_results_1_00_02.xls", that there is mention of an .avi file being used to verify decode_avi.sh on the DM6467 (and a .ts file for decode_ts.sh). As a quick sanity check, would it be possible to receive one of these files? Alternately, could I find out how these were generated so I can create files of my own? The method described for generating files for DM355 gstreamer (using FFMPEG) doesn't seem to be working for me.
Thank you!
-Robert