avidemux: missing colorimetry in CAPS
I have a problem where I record RAW frames (YUY2) into an AVI container and then want to "play" it through a v4l2 loopback device.
v4l2sink
seems to require a colorimetry of 2:4:7:1
.
However, even if I specify it when saving and later demuxing the file I get negotiation errors.
When I inspect the CAPS negotiation it seems to be because avidemux
is not outputting any colorimetry
information.
The only way I can get it to work is by adding a videoconvert
before the v4l2sink
, but I would like to avoid the extra processing.
GST_DEBUG=*:3 gst-launch-1.0 videotestsrc num-buffers=10 ! video/x-raw,format=YUY2,colorimetry=2:4:7:1 ! avimux ! filesink location=/tmp/test2.avi
GST_DEBUG=*:3,GST_CAPS:5 gst-launch-1.0 filesrc location=/tmp/test2.avi ! avidemux ! v4l2sink device=/dev/video9
GST_DEBUG=*:3,GST_CAPS:5 gst-launch-1.0 filesrc location=/tmp/test2.avi ! avidemux ! video/x-raw,format=YUY2, colorimetry=2:4:7:1 ! v4l2sink device=/dev/video9
0:00:00.343173842 29454 0x5619d9bf7400 DEBUG GST_CAPS gstutils.c:3185:gst_pad_query_accept_caps:<capsfilter1:sink> accept caps of video/x-raw, format=(string)YUY2, framerate=(fraction)30/1, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1
0:00:00.343353157 29454 0x5619d9bf7400 DEBUG GST_CAPS gstutils.c:3185:gst_pad_query_accept_caps:<v4l2sink0:sink> accept caps of video/x-raw, format=(string)YUY2, colorimetry=(string)2:4:7:1, framerate=(fraction)30/1, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1
0:00:00.343500729 29454 0x5619d9bf7400 WARN basetransform gstbasetransform.c:1370:gst_base_transform_setcaps:<capsfilter1> transform could not transform video/x-raw, format=(string)YUY2, framerate=(fraction)30/1, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1 in anything we support
0:00:00.343604933 29454 0x5619d9bf7400 DEBUG GST_CAPS gstutils.c:3185:gst_pad_query_accept_caps:<capsfilter1:sink> accept caps of video/x-raw, format=(string)YUY2, framerate=(fraction)30/1, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1
0:00:00.343720671 29454 0x5619d9bf7400 DEBUG GST_CAPS gstutils.c:3185:gst_pad_query_accept_caps:<v4l2sink0:sink> accept caps of video/x-raw, format=(string)YUY2, colorimetry=(string)2:4:7:1, framerate=(fraction)30/1, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1
0:00:00.343835285 29454 0x5619d9bf7400 WARN basetransform gstbasetransform.c:1370:gst_base_transform_setcaps:<capsfilter1> transform could not transform video/x-raw, format=(string)YUY2, framerate=(fraction)30/1, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1 in anything we support
0:00:00.343943517 29454 0x5619d9bf7400 DEBUG GST_CAPS gstutils.c:3185:gst_pad_query_accept_caps:<capsfilter1:sink> accept caps of video/x-raw, format=(string)YUY2, framerate=(fraction)30/1, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1
0:00:00.344048412 29454 0x5619d9bf7400 DEBUG GST_CAPS gstutils.c:3185:gst_pad_query_accept_caps:<v4l2sink0:sink> accept caps of video/x-raw, format=(string)YUY2, colorimetry=(string)2:4:7:1, framerate=(fraction)30/1, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1
0:00:00.344182050 29454 0x5619d9bf7400 WARN basetransform gstbasetransform.c:1370:gst_base_transform_setcaps:<capsfilter1> transform could not transform video/x-raw, format=(string)YUY2, framerate=(fraction)30/1, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1 in anything we support
0:00:00.344795439 29454 0x5619d9bf7400 DEBUG GST_CAPS gstutils.c:3185:gst_pad_query_accept_caps:<capsfilter1:sink> accept caps of video/x-raw, format=(string)YUY2, framerate=(fraction)30/1, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1
0:00:00.344966076 29454 0x5619d9bf7400 DEBUG GST_CAPS gstutils.c:3185:gst_pad_query_accept_caps:<v4l2sink0:sink> accept caps of video/x-raw, format=(string)YUY2, colorimetry=(string)2:4:7:1, framerate=(fraction)30/1, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1
0:00:00.345080302 29454 0x5619d9bf7400 WARN basetransform gstbasetransform.c:1370:gst_base_transform_setcaps:<capsfilter1> transform could not transform video/x-raw, format=(string)YUY2, framerate=(fraction)30/1, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1 in anything we support
0:00:00.345242583 29454 0x5619d9bf7400 WARN avidemux gstavidemux.c:5787:gst_avi_demux_loop:<avidemux0> error: Internal data stream error.
0:00:00.345325166 29454 0x5619d9bf7400 WARN avidemux gstavidemux.c:5787:gst_avi_demux_loop:<avidemux0> error: streaming stopped, reason not-negotiated (-4)
ERROR: from element /GstPipeline:pipeline0/GstAviDemux:avidemux0: Internal data stream error.