AnsweredAssumed Answered

gstreamer plugin VPU_DecOpen() fails

Question asked by Alexander Shashkevych on May 14, 2014
Latest reply on Sep 4, 2014 by Alexander Shashkevych

Hello all,

 

I'm using gstreamer to play mpeg2 stream from udp, but my vpudec plugin fails to initialize. Here is my pipeline:

 

gst-launch udpsrc uri=udp://0.0.0.0:1234 ! mpegtsdemux ! queue ! mpegvideoparse ! vpudec ! ximagesink

 

The error log is following:

 

0:00:00.736662000 23721 0x4330ec60 INFO     vpudec vpudec.c:1185:gst_vpudec_setcaps: Get upstream caps video/mpeg, mpegversion=(int)2, systemstream=(boolean)false, parsed=(boolean)true, width=(int)720, height=(int)480, framerate=(fraction)60000/1001, pixel-aspect-ratio=(fraction)8/9, codec_data=(buffer)2d01e024249f23821020202620262c2c2c2c2c2c343034363636343434343636363a3a3a4444443a3a3a36363a3a404044444a4c4a464644464c4c50505060605c5c7070748a8aa710111112121213131313141414141415151515151516161616161616171717171717171718181819181818191a1a1a1a191b1b1b1b1b1c1c1c1c1e1e1e1f1f21000001b5148200010000000001b8, profile=(string)main, level=(string)low, interlaced=(boolean)true
0:00:00.737632666 23721 0x4330ec60 INFO     vpudec vpudec.c:1194:gst_vpudec_setcaps: Get codec std 10
0:00:00.737794666 23721 0x4330ec60 INFO     vpudec vpudec.c:1198:gst_vpudec_setcaps: Set Width 720
0:00:00.737944000 23721 0x4330ec60 INFO     vpudec vpudec.c:1202:gst_vpudec_setcaps: Set Height 480
0:00:00.738200000 23721 0x4330ec60 INFO     vpudec vpudec.c:1208:gst_vpudec_setcaps: Set codec_data 0x4330d010, data 0x43d02a00, malloc 0x43d02a00, ts 99:99:99.999999999, dur 99:99:99.999999999, size 150, offset 18446744073709551615, offset_end 18446744073709551615, caps: NULL
0:00:00.749876000 23721 0x4330ec60 INFO     vpudec vpudec.c:1234:gst_vpudec_setcaps: got downstream allow caps video/x-raw-yuv, format=(fourcc)NV12, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:00.759436333 23721 0x4330ec60 ERROR    vpudec vpudec.c:1282:gst_vpudec_setcaps: Func VPU_DecOpen failed!! with ret 1

 

For me line "Get codec std 10" looks strange. Why codec 10? From docs I found following typedef used for decoder initialization:

 

typedef enum {
STD_MPEG4 = 0,
STD_H263 = 1,
STD_AVC = 2,
STD_VC1 = 3,
STD_MPEG2 = 4,
STD_DIV3 = 5,
STD_RV = 6,
STD_MJPG = 7,
STD_AVS = 8,
STD_VP8 = 9,
} CodStd;

 

And there is no codec with id 10. MPEG2 has id 4. What's wrong or missing?

 

Here is version of plugin:

 

vpudec versions :
plugin: 3.0.7
wrapper: 1.0.35(VPUWRAPPER_ARM_LINUX Build on Jul  2 2013 08:38:58)
vpulib: 5.4.12
firmware: 2.1.9.36350

 

Thank you in advance!

Outcomes