I am evaluation gst-dsp on OMAP3530 our custom board. I would like
to thank Felipe for this useful software.
I have 2.6.39 kernel, with dspbridge installed and working.
I cannot decode our H264 stream recorded from local IPTV operator
# gst-launch -vvv udpsrc multicast_group=232.0.5.5 port=5500 !
ffdemux_mpegts !
dspvdec ! omapfbsink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstDspVDec:dspvdec0.GstPad:sink: caps = video/x-
h264, width=(int)720, height=(int)576, framerate=(fraction)25/1,
codec_data=(buffer)00000001091000000001274d401e9a62816848b02f7050505f00000300010000030032940000000120
(gst-launch-0.10:124): GStreamer-CRITICAL **: gst_mini_object_unref:
assertion `GST_IS_MINI_OBJECT (mini_object)' failed
/GstPipeline:pipeline0/GstDspVDec:dspvdec0.GstPad:sink: caps = video/x-
h264, width=(int)720, height=(int)576, framerate=(fraction)25/1,
codec_data=(buffer)00000001091000000001274d401e9a62816848b02f7050505f00000300010000030032940000000120
/GstPipeline:pipeline0/GstDspVDec:dspvdec0.GstPad:src: caps = video/x-
raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)576,
framerate=(fraction)25/1
out_recv_cb: decode error
got_message: DSP event: cmd=0x0E00, arg1=1, arg2=0x08C2
map_buffer: buffer not aligned: 0x43e9b008-0x43f65808
out_recv_cb: decode error
got_message: DSP event: cmd=0x0E00, arg1=1, arg2=0x08C2
/GstPipeline:pipeline0/GstOmapFbSink:omapfbsink0.GstPad:sink: caps =
video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)576,
framerate=(fraction)25/1
out_recv_cb: decode error
got_message: DSP event: cmd=0x0E00, arg1=1, arg2=0x08C2
out_recv_cb: decode error
got_message: DSP event: cmd=0x0E00, arg1=1, arg2=0x08C2
out_recv_cb: decode error
got_message: DSP event: cmd=0x0E00, arg1=1, arg2=0x08C2
out_recv_cb: decode error
got_message: DSP event: cmd=0x0E00, arg1=1, arg2=0x08C2
out_recv_cb: decode error
got_message: DSP event: cmd=0x0E00, arg1=1, arg2=0x08C2
I see green box on the screen.
Where can I find some documentation what 0x08C2 means? I may
participate and add some fixes if they are needed to properly decode
my stream with gst-dsp.
Stream bitrate is about 3500kbit/s.
I used gst-dsp v0.10.0 from git, kernel 2.6.39, GStreamer 0.10.35
(buildroot.git was used to build it)
CONFIG_TIDSPBRIDGE=m
CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE=0x600000
# CONFIG_TIDSPBRIDGE_DEBUG is not set
CONFIG_TIDSPBRIDGE_RECOVERY=y
# CONFIG_TIDSPBRIDGE_CACHE_LINE_CHECK is not set
# CONFIG_TIDSPBRIDGE_WDT3 is not set
# CONFIG_TIDSPBRIDGE_NTFY_PWRERR is not set
# CONFIG_TIDSPBRIDGE_BACKTRACE is not set
I can decode 480x320 H264 without the problem, however, the
notification:
map_buffer: buffer not aligned: 0x1925070-0x1970070 appears.
Best regards,
Luke
2011/11/30 Łukasz Pułka <luk...@oxnet.pl>:
> I am evaluation gst-dsp on OMAP3530 our custom board. I would like
> to thank Felipe for this useful software.
:)
> I have 2.6.39 kernel, with dspbridge installed and working.
>
> I cannot decode our H264 stream recorded from local IPTV operator
> # gst-launch -vvv udpsrc multicast_group=232.0.5.5 port=5500 !
> ffdemux_mpegts !
> dspvdec ! omapfbsink
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> /GstPipeline:pipeline0/GstDspVDec:dspvdec0.GstPad:sink: caps = video/x-
> h264, width=(int)720, height=(int)576, framerate=(fraction)25/1,
> codec_data=(buffer)00000001091000000001274d401e9a62816848b02f7050505f00000300010000030032940000000120
>
> (gst-launch-0.10:124): GStreamer-CRITICAL **: gst_mini_object_unref:
> assertion `GST_IS_MINI_OBJECT (mini_object)' failed
This assertion seems interesting, maybe you can run with 'export
G_DEBUG=fatal_criticals' to get a core dump to see where exactly this
is happening. Probably we are doing something wrong in gst-dsp.
Unfortunately I don't know what those errors means, but it's clear the
decoder doesn't like the input.
Can you save the stream to a muxed file so I can try to reproduce?
> Stream bitrate is about 3500kbit/s.
>
> I used gst-dsp v0.10.0 from git, kernel 2.6.39, GStreamer 0.10.35
> (buildroot.git was used to build it)
>
> CONFIG_TIDSPBRIDGE=m
> CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE=0x600000
> # CONFIG_TIDSPBRIDGE_DEBUG is not set
> CONFIG_TIDSPBRIDGE_RECOVERY=y
> # CONFIG_TIDSPBRIDGE_CACHE_LINE_CHECK is not set
> # CONFIG_TIDSPBRIDGE_WDT3 is not set
> # CONFIG_TIDSPBRIDGE_NTFY_PWRERR is not set
> # CONFIG_TIDSPBRIDGE_BACKTRACE is not set
>
> I can decode 480x320 H264 without the problem, however, the
> notification:
> map_buffer: buffer not aligned: 0x1925070-0x1970070 appears.
This means the output buffer is not aligned properly, which is weird,
if you are using omapfbsink, but maybe there's a bug there. You can
try to compile GStreamer with --with-buffer-alignment=pagesize, which
is what we do for Nokia N9/N900. It should work regardless of that
warning, but less efficiently.
Cheers.
--
Felipe Contreras
> > got_message: DSP event: cmd=0x0E00, arg1=1, arg2=0x08C2
> > I see green box on the screen.
>
> > Where can I find some documentation what 0x08C2 means? I may
> > participate and add some fixes if they are needed to properly decode
> > my stream with gst-dsp.
>
> Unfortunately I don't know what those errors means, but it's clear the
> decoder doesn't like the input.
I have checked some sources from TI, and as far as I know 1 in arg1
means it is WARNING.
> Can you save the stream to a muxed file so I can try to reproduce?
I have uploaded two files, the "videostrada" extension is for TS file.
The shorter file does not work too.
http://demo.ovh.pl/en/a87bb30c4743ba77e0ffc500bc88944d/
I found that both streams contain B frames, so probably that is the
reason of the behavior of the decoder.
Could you please tell me if there is any chance of getting different
result with gst-openmax, bellagio and libbridge, or those components
will use the same DSP x264 decoder?
Also, I wonder if I could use c6accel with dspbrige, so I could patch
ffmpeg to use DSP only for given computation during H264 decoding.
Best regards,
Lukasz Pulka
Sorry for the late reply.
2011/12/5 Łukasz Pułka <luk...@oxnet.pl>:
> I have uploaded two files, the "videostrada" extension is for TS file.
> The shorter file does not work too.
>
> http://demo.ovh.pl/en/a87bb30c4743ba77e0ffc500bc88944d/
>
> I found that both streams contain B frames, so probably that is the
> reason of the behavior of the decoder.
Yes, only baseline is supported.
> Could you please tell me if there is any chance of getting different
> result with gst-openmax, bellagio and libbridge, or those components
> will use the same DSP x264 decoder?
Nope, it's a limitation of the decoder. Other decoders, like the one
we use on the Nokia N9 works fine.
> Also, I wonder if I could use c6accel with dspbrige, so I could patch
> ffmpeg to use DSP only for given computation during H264 decoding.
That would certainly be an interesting project. Unfortunately I don't
know much of c6accel. As for FFmpeg issues you can contact them
directly, or the libav fork, they are quite responsive and probably
there's some people already working on running the codecs on c6x.
Cheers.
--
Felipe Contreras
Thank you. Better late then never.
Regards,
Lukasz Pulka