AnsweredAssumed Answered

Issues decoding MJPEG with VPUdec

Question asked by Yann Tinaugus on Oct 19, 2015
Latest reply on Oct 20, 2015 by Yuri Muhin

Hi everyone,

 

I'm having issue using VPUdec to decode MJPEG video. Althought, it is said that VPUdec can  decode MJPEG stream, i have been unable to make it works on my side.

Then, tried to transcode a file from H264 to MJPEG thanks to VPUenc (codec=12). This worked great. But then, when I do the other way around : use the file transcoded by the iMX6 and decode it thanks to the VPUdec, it doesn't work.

 

Does someone has an idea what's wrong ?

Thanks in advance for your help..

 

command line to transcode h264 ->MJPEG :

gst-launch -vvv filesrc location=test.avi ! decodebin2 ! vpuenc codec=12 bitrate=20000 ! filesink location=test_mjpeg.avi

 

command line to decode MJPEG :

gst-launch -vvv filesrc location=test_mjpeg.avi ! 'image/jpeg' ! vpudec ! vpuenc codec=6 ! filesink location=test_decode.avi

(I know this is not an 'image' as said in the pipeline, but this is the most relevant parameter I have found in VPUdec description.)

 

error when I try to decode MJPEG :

root@phyFLEX-i:~ gst-launch -vvv filesrc location=test_mjpeg.avi ! 'image/jpeg'

! vpudec ! vpuenc codec=6 ! filesink location=test_decode.avi

Setting pipeline to PAUSED ...

[INFO]  Product Info: i.MX6Q/D/S

vpuenc versions

        plugin: 3.0.7

        wrapper: 1.0.35(VPUWRAPPER_ARM_LINUX Build on Sep  2 2014 12:27:25)

        vpulib: 5.4.12

        firmware: 2.1.9.36350

[INFO]  Product Info: i.MX6Q/D/S

vpudec versions

        plugin: 3.0.7

        wrapper: 1.0.35(VPUWRAPPER_ARM_LINUX Build on Sep  2 2014 12:27:25)

        vpulib: 5.4.12

        firmware: 2.1.9.36350

Pipeline is PREROLLING ...

/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = image/jpeg

[INFO]  bitstreamMode 1, chromaInterleave 0, mapType 0, tiled2LinearEnable 0

/GstPipeline:pipeline0/GstVpuDec:vpudec0.GstPad:sink: caps = image/jpeg

/GstPipeline:pipeline0/GstVpuDec:vpudec0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)1/1, crop-top=(int)0, crop-left=(int)0, crop-right=(int)0, crop-bottom=(int)0, num-buffers-required=(int)7, framerate=(fraction)30/1, alignment=(int)1

VPU blocking: timeout.

[WARN]  pic was forced to be done

/GstPipeline:pipeline0/GstVpuEnc:vpuenc0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)1/1, crop-top=(int)0, crop-left=(int)0, crop-right=(int)0, crop-bottom=(int)0, num-buffers-required=(int)7, framerate=(fraction)30/1, alignment=(int)1

[INFO]  chromaInterleave 0, mapType 0, linear2TiledEnable 0

/GstPipeline:pipeline0/GstVpuEnc:vpuenc0.GstPad:src: caps = video/x-h264, width=(int)720, height=(int)576, framerate=(fraction)30/1, framed=(boolean)true

/GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps = video/x-h264, width=(int)720, height=(int)576, framerate=(fraction)30/1, framed=(boolean)true

Pipeline is PREROLLED ...

Setting pipeline to PLAYING ...

New clock: GstSystemClock

ERROR: from element /GstPipeline:pipeline0/GstVpuDec:vpudec0: unknown error detect

Additional debug info:

vpudec.c(1409): gst_vpudec_process_error (): /GstPipeline:pipeline0/GstVpuDec:vpudec0

Execution ended after 1580669 ns.

Setting pipeline to PAUSED ...

Setting pipeline to READY ...

/GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps = NULL

/GstPipeline:pipeline0/GstVpuEnc:vpuenc0.GstPad:src: caps = NULL

/GstPipeline:pipeline0/GstVpuEnc:vpuenc0.GstPad:sink: caps = NULL

/GstPipeline:pipeline0/GstVpuDec:vpudec0.GstPad:src: caps = NULL

/GstPipeline:pipeline0/GstVpuDec:vpudec0.GstPad:sink: caps = NULL

/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = NULL

Setting pipeline to NULL ...

Freeing pipeline ...

 

Yann

Outcomes