dspmp4venc Supported Frame Sizes

82 views
Skip to first unread message

adam

unread,
Feb 10, 2012, 11:57:10 AM2/10/12
to gst-dsp
Hello all,

I have a strange issue with the mpeg4 encoder.
I am running a 3.0 kernel on a DM3730 board, capturing video via the
omap3 ISP and an external decoder.

I can capture and encode video in the standard PAL frame size (i.e.
720 x 576), as follows:

gst-launch v4l2src device="/dev/video2" always-copy=false queue-
size=16 num-buffers=1500 ! 'video/x-raw-
yuv,width=720,height=576,format=(fourcc)UYVY,framerate=25/1' !
dspmp4venc ! avimux ! filesink location=test.mp4

However when I try to do the same from an NTSC source, as follows:

gst-launch v4l2src device="/dev/video2" queue-size=16 always-
copy=false num-buffers=1500 ! 'video/x-raw-
yuv,width=720,height=486,format=(fourcc)UYVY,framerate=(fraction)30000/1001' !
dspmp4venc ! avimux ! filesink location=test.mp4

I get the following error from the DSP:

[ 217.676940] omap-dsp omap-dsp: bridge_deh_notify: DSP_MMUFAULT,
addr=0x20a17368
[ 217.684600] DSP Trace Buffer Begin:
[ 217.684600] =======================
[ 217.684600]
[ 217.693634]
[ 217.693634] =======================
[ 217.693634] DSP Trace Buffer End:
[ 217.702331]
[ 217.702331] Dynamically Loaded Modules:
[ 217.702331] ---------------------------
[ 217.711914] m4venc_sn.o64P
[ 217.714752] Section: 0x20002880
[ 217.718322] mp4ve_nodecode
[ 217.723724] omap3isp omap3isp: CCDC won't become idle!
[ 217.729125] Section: 0x20035d00
[ 217.732696] mp4ve_nodedata
[ 217.735687] usn.o64P
[ 217.737976] Section: 0x20000000
[ 217.741546] usn_nodecode
[ 217.744384] Section: 0x20002780
[ 217.747924] .const
[ 217.755401] dump_dsp_stack:No DSP MMU-Fault information available.
gstdsp_got_error: got DSP MMUFAULT
0:00:00.311584713 244 0x17542a8 ERROR dsp
gstdspbase.c:614:gstdsp_got_error:<dspmp4venc0> got DSP MMUFAULT
ERROR: from element /GstPipeline:pipeline0/GstDspMp4VEnc:dspmp4venc0:
got DSP MMUFAULT

I know that the decoder works in NTSC mode, because I can capture raw
video and stills using other pipelines, with the same caps.

I have tried this with both "b7f0587fc915c5d2404ffc7746678d619650cf82"
and "f2ef546472847665b5bb88b675d45dc294456f1c" (latest head from
github) and with DSP-API set to both 2 and 1, but get a similar
result.

From my previous dealings with the DVSDK, I know the TI codecs are
quite finicky about frame sizes and formats, so I wonder whether this
is a memory alignment issue?

Any advice or tips on how to debug the problem further would be
appreciated.

Thanks

Adam






Felipe Contreras

unread,
Feb 10, 2012, 6:06:18 PM2/10/12
to adam, gst-dsp
On Fri, Feb 10, 2012 at 6:57 PM, adam <adamp...@gmail.com> wrote:
> However when I try to do the same from an NTSC source, as follows:
>
> gst-launch v4l2src device="/dev/video2" queue-size=16 always-
> copy=false num-buffers=1500 ! 'video/x-raw-
> yuv,width=720,height=486,format=(fourcc)UYVY,framerate=(fraction)30000/1001' !
> dspmp4venc ! avimux ! filesink location=test.mp4

Only multiples of 16 are supported (macroblock aligned). This is how
most codecs work.

Cheers.

--
Felipe Contreras

adam

unread,
Feb 13, 2012, 9:22:16 AM2/13/12
to gst-dsp

> Only multiples of 16 are supported (macroblock aligned). This is how
> most codecs work.

Just to close this thread - sure enough simply adding a few more lines
to make the frame 720x496 works like a charm.
Thanks again Felipe.

Best

Adam
Reply all
Reply to author
Forward
0 new messages