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!
did you use mx6q? could you give me reproduced steps, let me tested it on my board.
The question is old and discussion can be closed. I figured out that board's manufacturer had provided kernel with incorrect settings, that was a cause for this error. I replaced kernel with newer version and problem is gone.