h264 decoding problem video/x-h264

439 views
Skip to first unread message

Łukasz Pułka

unread,
Nov 30, 2011, 2:54:24 AM11/30/11
to gst-dsp
Hello,

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


Felipe Contreras

unread,
Nov 30, 2011, 9:33:15 AM11/30/11
to Łukasz Pułka, gst-dsp
Hi,

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

Łukasz Pułka

unread,
Dec 5, 2011, 3:46:22 AM12/5/11
to gst-dsp
Hi,

> > 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

Felipe Contreras

unread,
Feb 14, 2012, 2:59:44 PM2/14/12
to Łukasz Pułka, gst-dsp
Hi,

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

Łukasz Pułka

unread,
Feb 15, 2012, 2:31:44 PM2/15/12
to Felipe Contreras, gst-dsp
Hi,

Thank you. Better late then never.

Regards,
Lukasz Pulka

Message has been deleted

Felipe Contreras

unread,
Sep 12, 2012, 11:27:10 AM9/12/12
to Alexandre Augusto Giron, gst...@googlegroups.com
On Tue, Jun 5, 2012 at 8:58 PM, Alexandre Augusto Giron
<alexandr...@gmail.com> wrote:

> I need some help to decode h.264 samples on beagleboard xm
> Here's what I have done:
>
> - Installed ubuntu oneiric, kernel 3.2.17-x11
> - installed gdm xubuntu-desktop
> - Installed gst-dsp from http://elinux.org/BeagleBoardUbuntu#gst-dsp (I have
> played that .avi example, just fine)
>
> I would be very grateful with some simple pipelines.

I'm not sure what is your problem. You are able to play MPEG-4 but not H.264?

> I have tried many pipelines, none of them have worked...
>
> Also, is there a way to decode h.264 on ARM, instead of DSP? Anyone knows
> how?

Yes, personally I use gst-av and libav for that.

Cheers.

--
Felipe Contreras
Reply all
Reply to author
Forward
0 new messages