TI中文支持网
TI专业的中文技术问题搜集分享网站

DM3730 gstreamer 如何使用TIViddec插件同时解两路码流?

大家好:

DM3730 dvsdk_dm3730-evm_4_02_00_06   EVMMAIN REV G

我现在想用TI-gst-plugin中的TIViddec2插件同时解两路(h264+h264 或 h264+mpeg4)码流,出错。若只是解一路码流(h264或mpeg4),则正常。

TI gstreamer插件支持同时解多路码流吗?    有没有人实现过同时解两路码流?      若同时解多路码流,在构建pipeline上需要注意什么? 谢谢!

pipeline:

gst-launch -e -v filesrc location=/usr/share/ti/data/videos/test_480p30.264 ! typefind ! h264parse ! queue
 ! TIViddec2 padAllocOutbufs=TRUE ! queue ! videomixer name=mix ! queue ! tidisplaysink2  filesrc location=/usr/share/ti/data/vi
deos/davincieffect.mpeg4 ! typefind ! mpeg4videoparse ! queue ! TIViddec2 padAllocOutbufs=TRUE  !queue ! mix.

0:00:00.062872127  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:246:gst_tividdec2_get_type: initialized get_type

0:00:00.066045995  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:360:gst_tividdec2_init_env: gst_tividdec2_init_env – begin

0:00:00.066290139  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:423:gst_tividdec2_init_env: gst_tividdec2_init_env – end

0:00:00.066595318  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:541:gst_tividdec2_set_property: begin set_property

0:00:00.066747908  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:593:gst_tividdec2_set_property: setting "padAllocOutbufs" to "TRUE"

0:00:00.066869980  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:600:gst_tividdec2_set_property: end set_property

0:00:00.081701209  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:360:gst_tividdec2_init_env: gst_tividdec2_init_env – begin

0:00:00.081975857  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:423:gst_tividdec2_init_env: gst_tividdec2_init_env – end

0:00:00.082219989  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:541:gst_tividdec2_set_property: begin set_property

0:00:00.082372571  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:593:gst_tividdec2_set_property: setting "padAllocOutbufs" to "TRUE"

0:00:00.082494637  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:600:gst_tividdec2_set_property: end set_property

Setting pipeline to PAUSED …
0:00:00.120091777  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1252:gst_tividdec2_change_state: begin change_state (10)

0:00:00.120305405  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1289:gst_tividdec2_change_state: end change_state

0:00:00.120519032  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1252:gst_tividdec2_change_state: begin change_state (10)

0:00:00.120671623  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1289:gst_tividdec2_change_state: end change_state

0:00:00.123235153  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1252:gst_tividdec2_change_state: begin change_state (19)

0:00:00.123479299  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1289:gst_tividdec2_change_state: end change_state

0:00:00.124242249  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1252:gst_tividdec2_change_state: begin change_state (19)

0:00:00.124455875  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1289:gst_tividdec2_change_state: end change_state

/GstPipeline:pipeline0/GstTypeFindElement:typefindelement0.GstPad:src: caps = video/x-h264
/GstPipeline:pipeline0/GstTypeFindElement:typefindelement1.GstPad:src: caps = video/mpeg, systemstream=(boolean)false, mpegversion=(int)4, parsed=(boolean)false
Pipeline is PREROLLING …
0:00:00.179326474  1729    0x78470 DEBUG              TIViddec2 gsttividdec2.c:869:gst_tividdec2_sink_event: pad "sink" received:  newsegment

/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal, width=(int)720, height=(int)480
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal, width=(int)720, height=(int)480
0:00:00.181676330  1729    0xa57d0 DEBUG              TIViddec2 gsttividdec2.c:869:gst_tividdec2_sink_event: pad "sink" received:  newsegment

/GstPipeline:pipeline0/GstMpeg4VParse:mpeg4vparse0.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, parsed=(boolean)true
/GstPipeline:pipeline0/GstMpeg4VParse:mpeg4vparse0.GstPad:sink: caps = video/mpeg, systemstream=(boolean)false, mpegversion=(int)4, parsed=(boolean)false
/GstPipeline:pipeline0/GstMpeg4VParse:mpeg4vparse0.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, parsed=(boolean)true, profile-level-id=(string)241, codec_data=(buffer)000001b0f1000001b5a913000001000000012008d48d0800f528045a14103f000001b24c61766335322e37342e31, pixel-aspect-ratio=(fraction)1/1, width=(int)1280, height=(int)720
/GstPipeline:pipeline0/GstQueue:queue3.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, parsed=(boolean)true, profile-level-id=(string)241, codec_data=(buffer)000001b0f1000001b5a913000001000000012008d48d0800f528045a14103f000001b24c61766335322e37342e31, pixel-aspect-ratio=(fraction)1/1, width=(int)1280, height=(int)720
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal, width=(int)720, height=(int)480
0:00:00.185155339  1729    0x78470 INFO               TIViddec2 gsttividdec2.c:663:gst_tividdec2_set_sink_caps: requested sink caps:  video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal, width=(int)720, height=(int)480
0:00:00.185368962  1729    0x78470 LOG                TIViddec2 gsttividdec2.c:1176:gst_tividdec2_exit_video: begin exit_video

0:00:00.185521550  1729    0x78470 LOG                TIViddec2 gsttividdec2.c:1233:gst_tividdec2_exit_video: end exit_video

0:00:00.185643621  1729    0x78470 LOG                TIViddec2 gsttividdec2.c:767:gst_tividdec2_set_sink_caps: sink caps negotiation successful

/GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal, width=(int)720, height=(int)480
0:00:00.186559150  1729    0x78470 LOG                TIViddec2 gsttividdec2.c:1066:gst_tividdec2_init_video: begin init_video

0:00:00.187261056  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1577:gst_tividdec2_decode_thread: init video decode_thread
0:00:00.187505197  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1348:gst_tividdec2_codec_start: opening codec engine "codecServer"

/GstPipeline:pipeline0/GstQueue:queue3.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, parsed=(boolean)true, profile-level-id=(string)241, codec_data=(buffer)000001b0f1000001b5a913000001000000012008d48d0800f528045a14103f000001b24c61766335322e37342e31, pixel-aspect-ratio=(fraction)1/1, width=(int)1280, height=(int)720
0:00:00.196202720  1729    0xa57d0 INFO               TIViddec2 gsttividdec2.c:663:gst_tividdec2_set_sink_caps: requested sink caps:  video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, parsed=(boolean)true, profile-level-id=(string)241, codec_data=(buffer)000001b0f1000001b5a913000001000000012008d48d0800f528045a14103f000001b24c61766335322e37342e31, pixel-aspect-ratio=(fraction)1/1, width=(int)1280, height=(int)720
0:00:00.196446861  1729    0xa57d0 LOG                TIViddec2 gsttividdec2.c:1176:gst_tividdec2_exit_video: begin exit_video

0:00:00.196568931  1729    0xa57d0 LOG                TIViddec2 gsttividdec2.c:1233:gst_tividdec2_exit_video: end exit_video

0:00:00.196721519  1729    0xa57d0 LOG                TIViddec2 gsttividdec2.c:767:gst_tividdec2_set_sink_caps: sink caps negotiation successful

/GstPipeline:pipeline0/GstTIViddec2:tividdec21.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, parsed=(boolean)true, profile-level-id=(string)241, codec_data=(buffer)000001b0f1000001b5a913000001000000012008d48d0800f528045a14103f000001b24c61766335322e37342e31, pixel-aspect-ratio=(fraction)1/1, width=(int)1280, height=(int)720
0:00:00.197270836  1729    0xa57d0 LOG                TIViddec2 gsttividdec2.c:1066:gst_tividdec2_init_video: begin init_video

0:00:00.197637048  1729    0x432c0 LOG                TIViddec2 gsttividdec2.c:1577:gst_tividdec2_decode_thread: init video decode_thread
0:00:00.197881188  1729    0x432c0 LOG                TIViddec2 gsttividdec2.c:1348:gst_tividdec2_codec_start: opening codec engine "codecServer"

0:00:00.359685382  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1430:gst_tividdec2_codec_start: opening video decoder "h264dec"

0:00:00.488103347  1729    0x432c0 LOG                TIViddec2 gsttividdec2.c:1430:gst_tividdec2_codec_start: opening video decoder "mpeg4dec"

0:00:00.489903885  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:845:gst_tividdec2_set_source_caps_base: setting source caps to: video/x-raw-yuv, format=(fourcc)UYVY, framerate=(fraction)30000/1001, width=(int)720, height=(int)480
/GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)UYVY, framerate=(fraction)30000/1001, width=(int)720, height=(int)480
0:00:00.490972001  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1494:gst_tividdec2_codec_start: downstream buffer is not a DMAI buffer; disabling use of pad-allocated buffers

0:00:00.491216142  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1518:gst_tividdec2_codec_start: creating output buffer table

(gst-launch-0.10:1729): GStreamer-CRITICAL **: gst_debug_log_valist: assertion `category != NULL' failed
0:00:00.492040117  1729    0x78470 LOG                TIViddec2 gsttividdec2.c:1162:gst_tividdec2_init_video: end init_video

0:00:00.492284258  1729    0x78470 LOG                TIViddec2 gsttividdec2.c:1034:gst_tividdec2_chain: Found extra header information for h264dec
0:00:00.527074298  1729    0x432c0 WARN               TIViddec2 gsttividdec2.c:1436:gst_tividdec2_codec_start:<tividdec21> error: failed to create video decoder: mpeg4dec

0:00:00.527654132  1729    0x432c0 LOG                TIViddec2 gsttividdec2.c:1437:gst_tividdec2_codec_start: closing codec engine

0:00:00.527867755  1729    0x432c0 WARN               TIViddec2 gsttividdec2.c:1589:gst_tividdec2_decode_thread:<tividdec21> error: failed to start codec

ERROR: from element /GstPipeline:pipeline0/GstTIViddec2:tividdec21: failed to create video decoder: mpeg4dec

Additional debug info:
gsttividdec2.c(1436): gst_tividdec2_codec_start (): /GstPipeline:pipeline0/GstTIViddec2:tividdec21
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL …
0:00:00.529363116  1729    0xa57d0 WARN               TIViddec2 gsttividdec2.c:1158:gst_tividdec2_init_video:<tividdec21> error: decode thread failed to create circbuf handles

0:00:00.529759844  1729    0xa57d0 WARN               TIViddec2 gsttividdec2.c:1027:gst_tividdec2_chain:<tividdec21> error: unable to initialize video

0:00:00.539281329  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1252:gst_tividdec2_change_state: begin change_state (26)

0:00:00.544103106  1729    0xa57d0 WARN               TIViddec2 gsttividdec2.c:988:gst_tividdec2_parse_and_queue_buffer:<tividdec21> error: Failed to queue input buffer into circular buffer

0:00:00.544560870  1729    0xa57d0 WARN               TIViddec2 gsttividdec2.c:1045:gst_tividdec2_chain:<tividdec21> error: Failed to queue input buffer into circular buffer

/GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:sink: caps = NULL
0:00:00.546025714  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1289:gst_tividdec2_change_state: end change_state

0:00:00.546422443  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1252:gst_tividdec2_change_state: begin change_state (17)

0:00:00.546636066  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1176:gst_tividdec2_exit_video: begin exit_video

0:00:00.546880206  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1675:gst_tividdec2_decode_thread: invoking the video decoder

0:00:00.558080157  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1675:gst_tividdec2_decode_thread: invoking the video decoder

0:00:00.567571124  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1675:gst_tividdec2_decode_thread: invoking the video decoder

0:00:00.577031574  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1675:gst_tividdec2_decode_thread: invoking the video decoder

0:00:00.586461505  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1675:gst_tividdec2_decode_thread: invoking the video decoder

0:00:00.595921954  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1675:gst_tividdec2_decode_thread: invoking the video decoder

0:00:00.605596026  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:845:gst_tividdec2_set_source_caps_base: setting source caps to: video/x-raw-yuv, format=(fourcc)UYVY, framerate=(fraction)30000/1001, width=(int)720, height=(int)480
/GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)UYVY, framerate=(fraction)30000/1001, width=(int)720, height=(int)480
0:00:00.606328448  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1783:gst_tividdec2_decode_thread: pushing buffer to source pad with timestamp : 0:00:00.000000000, duration: 0:00:00.033366666
0:00:00.606542071  1729    0x3e8d0 DEBUG              TIViddec2 gsttividdec2.c:1786:gst_tividdec2_decode_thread: push to source pad failed

0:00:00.606694659  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1302:gst_tividdec2_codec_stop: freeing cicrular input buffer

0:00:00.607884844  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1311:gst_tividdec2_codec_stop: freeing output buffers

0:00:00.609654865  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1318:gst_tividdec2_codec_stop: closing video decoder

0:00:00.609899005  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1186:gst_tividdec2_exit_video: shutting down decode thread

0:00:00.611211261  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1324:gst_tividdec2_codec_stop: closing codec engine

0:00:00.611607989  1729    0x3e8d0 LOG                TIViddec2 gsttividdec2.c:1850:gst_tividdec2_decode_thread: exit video decode_thread (-1)

0:00:00.612065753  1729    0x15088 DEBUG              TIViddec2 gsttividdec2.c:1191:gst_tividdec2_exit_video: decode thread exited with an error condition

0:00:00.612248859  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1233:gst_tividdec2_exit_video: end exit_video

0:00:00.612401446  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1289:gst_tividdec2_change_state: end change_state

0:00:00.612645587  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1252:gst_tividdec2_change_state: begin change_state (26)

/GstPipeline:pipeline0/GstTIViddec2:tividdec21.GstPad:sink: caps = NULL
0:00:00.613194903  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1289:gst_tividdec2_change_state: end change_state

0:00:00.613408526  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1252:gst_tividdec2_change_state: begin change_state (17)

0:00:00.613591632  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1176:gst_tividdec2_exit_video: begin exit_video

0:00:00.613774737  1729    0x432c0 LOG                TIViddec2 gsttividdec2.c:1324:gst_tividdec2_codec_stop: closing codec engine

0:00:00.616765460  1729    0x432c0 LOG                TIViddec2 gsttividdec2.c:1850:gst_tividdec2_decode_thread: exit video decode_thread (0)

0:00:00.617375812  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1186:gst_tividdec2_exit_video: shutting down decode thread

0:00:00.617589435  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1233:gst_tividdec2_exit_video: end exit_video

0:00:00.617711505  1729    0x15088 LOG                TIViddec2 gsttividdec2.c:1289:gst_tividdec2_change_state: end change_state

/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstQueue:queue3.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstQueue:queue3.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstMpeg4VParse:mpeg4vparse0.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstMpeg4VParse:mpeg4vparse0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstTypeFindElement:typefindelement0.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstTypeFindElement:typefindelement1.GstPad:src: caps = NULL
Freeing pipeline …

jinqiang wang:

请问楼主问题解决了吗?我现在也想用gstreamer插件解码两路视频,楼主有好的方法吗?

赞(0)
未经允许不得转载:TI中文支持网 » DM3730 gstreamer 如何使用TIViddec插件同时解两路码流?
分享到: 更多 (0)