Using v4l2sink with mpegtsmux, issue with CAPS change for headers?
Michael Williamson
michael.williamson at criticallink.com
Mon Oct 15 10:34:55 PDT 2012
Hello,
I am trying to develop and test a linux V4L2 device that accepts MPEG transport
stream data. The device will decode the stream for local display or route it
to a remote recording device.
I am using the following pipeline to test it, and am getting errors when the
mpegtsmux element tries to alter the CAPS to insert stream headers (see the
debug output, also posted). I am using gst-0.10.
gst-launch --gst-debug=v4l2sink:5 \
videotestsrc ! \
x264enc ! \
mpegtsmux ! \
v4l2sink device=/dev/video1
I'm trying to sort out if this is a problem with my driver or with the
configuration of the pipeline. So far, it seems that the issue is
between the mpegtsmux and the v4l2sink elements, and not the v4l2sink
element and the driver. Any insight into this would be greatly
appreciated.
Thanks.
-Mike
Debug Output:
#######################################################################
Setting pipeline to PAUSED ...
0:00:00.085794895 4236 0x91052a0 DEBUG v4l2sink gstv4l2sink.c
:608:gst_v4l2sink_change_state:<v4l2sink0> 1 -> 2
0:00:00.089983908 4236 0x91052a0 DEBUG v4l2sink gstv4l2sink.c
:608:gst_v4l2sink_change_state:<v4l2sink0> 2 -> 3
Pipeline is PREROLLING ...
0:00:00.280443960 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:715:gst_v4l2sink_set_caps:<v4l2sink0> caps: video/mpegts, systemstream=
(boolean)true, packetsize=(int)188
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
0:00:00.281733612 4236 0x91052a0 DEBUG v4l2sink gstv4l2sink.c
:608:gst_v4l2sink_change_state:<v4l2sink0> 3 -> 4
New clock: GstSystemClock
0:00:00.283204510 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:844:gst_v4l2sink_show_frame:<v4l2sink0> render buffer: 0xb5296410
0:00:00.283439314 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:873:gst_v4l2sink_show_frame:<v4l2sink0> slow-path.. I got a GstBuffer so I
need to memcpy
0:00:00.283607404 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:715:gst_v4l2sink_set_caps:<v4l2sink0> caps: video/mpegts, systemstream=
(boolean)true, packetsize=(int)188
0:00:00.283842451 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:723:gst_v4l2sink_set_caps:<v4l2sink0> already have caps set.. are they equal?
0:00:00.284011460 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:724:gst_v4l2sink_set_caps:<v4l2sink0> v4l2sink->current_caps: video/mpegts,
systemstream=(boolean)true, packetsize=(int)188
0:00:00.284271976 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:726:gst_v4l2sink_set_caps:<v4l2sink0> yes they are!
0:00:00.290838613 4236 0x90f9660 INFO v4l2sink gstv4l2sink.c
:812:gst_v4l2sink_buffer_alloc:<v4l2sink0> outputting buffers via mmap()
0:00:00.294643928 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:823:gst_v4l2sink_buffer_alloc:<v4l2sink0> allocated buffer: 0xb6c07000
0:00:00.294720699 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:889:gst_v4l2sink_show_frame:<v4l2sink0> render copied buffer: 0xb6c07000
0:00:00.294995524 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:844:gst_v4l2sink_show_frame:<v4l2sink0> render buffer: 0xb52964d0
0:00:00.295262873 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:873:gst_v4l2sink_show_frame:<v4l2sink0> slow-path.. I got a GstBuffer so I
need to memcpy
0:00:00.295320685 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:823:gst_v4l2sink_buffer_alloc:<v4l2sink0> allocated buffer: 0xb6c070a8
0:00:00.295356828 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:889:gst_v4l2sink_show_frame:<v4l2sink0> render copied buffer: 0xb6c070a8
0:00:00.295619184 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:715:gst_v4l2sink_set_caps:<v4l2sink0> caps: video/mpegts, systemstream=
(boolean)true, packetsize=(int)188, streamheader=(buffer)< 1803c0b61803c0b6f
046c0b6f046c0b6aa91919191919191919191919191919191919191919191919191919191919
19191919191919191919191919191916a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6
a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a51515151515151515151515151515
1515151515151515151515151515151515151515151515151515151515151512929292929292
9292929292929292929292929292929292929292929292929292929, 7802c0b67802c0b6f84
bc0b6f84bc0b691919191e90300004000c0b64000c0b60000000000000000919191919191919
19191919191916a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6
a6a6a6a6a6a6a6a6a6a6a6a6a6a6a990300004000c0b64000c0b600000000000000005151515
1515151515151515151515151515151515151515151512929292929292929292929292929292
92929292929292929292929292929292929292929292929292929 >
0:00:00.296062295 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:723:gst_v4l2sink_set_caps:<v4l2sink0> already have caps set.. are they equal?
0:00:00.296332874 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:724:gst_v4l2sink_set_caps:<v4l2sink0> v4l2sink->current_caps: video/mpegts,
systemstream=(boolean)true, packetsize=(int)188
0:00:00.296517260 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:729:gst_v4l2sink_set_caps:<v4l2sink0> no they aren't!
0:00:00.296676643 4236 0x90f9660 DEBUG v4l2sink gstv4l2sink.c
:740:gst_v4l2sink_set_caps:<v4l2sink0> warning, changing caps not supported yet
ERROR: from element /GstPipeline:pipeline0/MpegTsMux:mpegtsmux0: Failed
writing output data to stream 00e0
Additional debug info:
mpegtsmux.c(964): mpegtsmux_collected (): /GstPipeline:pipeline0/MpegTsMux
:mpegtsmux0
Execution ended after 18363411 ns.
#######################################################################
More information about the gstreamer-devel
mailing list