<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">Le jeu. 20 sept. 2018 07 h 57, Amit Pandya <<a href="mailto:amit4gst@gmail.com">amit4gst@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
Following pipeline used for 4K H264 encode using qtmux pipeline,<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Could it be related to <a href="https://bugzilla.gnome.org/show_bug.cgi?id=796761">https://bugzilla.gnome.org/show_bug.cgi?id=796761</a> ?</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
*a)  gst-launch-1.0 videotestsrc num-buffers=100 ! 'video/x-raw,<br>
width=(int)3840, height=(int)2160, format=(string)I420' ! x264enc !<br>
h264parse ! qtmux ! filesink<br>
location=test_x264enc_3840x2160_I420_100frames.mp4 -v -e*<br>
....<br>
/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:src: caps = video/x-h264,<br>
codec_data=(buffer)01640033ffe1001e67640033acd9403c0043ec05a848104a000003000200000300791e30632c01000568ebecb22c,<br>
stream-format=(string)avc, alignment=(string)au, level=(string)5.1,<br>
profile=(string)high, width=(int)3840, height=(int)2160,<br>
pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1,<br>
interlace-mode=(string)progressive, *colorimetry=(string)bt2020*,<br>
chroma-site=(string)mpeg2, multiview-mode=(string)mono,<br>
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono<br>
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps =<br>
video/x-h264,<br>
codec_data=(buffer)01640033ffe1001e67640033acd9403c0043ec05a848104a000003000200000300791e30632c01000568ebecb22c,<br>
stream-format=(string)avc, alignment=(string)au, level=(string)5.1,<br>
profile=(string)high, width=(int)3840, height=(int)2160,<br>
pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1,<br>
interlace-mode=(string)progressive, *colorimetry=(string)bt2020*,<br>
chroma-site=(string)mpeg2, multiview-mode=(string)mono,<br>
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,<br>
chroma-format=(string)4:2:0, bit-depth-luma=(uint)8,<br>
bit-depth-chroma=(uint)8, parsed=(boolean)true<br>
/GstPipeline:pipeline0/GstQTMux:qtmux0.GstQTMuxPad:video_0: caps =<br>
video/x-h264,<br>
codec_data=(buffer)01640033ffe1001e67640033acd9403c0043ec05a848104a000003000200000300791e30632c01000568ebecb22c,<br>
stream-format=(string)avc, alignment=(string)au, level=(string)5.1,<br>
profile=(string)high, width=(int)3840, height=(int)2160,<br>
pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1,<br>
interlace-mode=(string)progressive, *colorimetry=(string)bt2020*,<br>
chroma-site=(string)mpeg2, multiview-mode=(string)mono,<br>
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,<br>
chroma-format=(string)4:2:0, bit-depth-luma=(uint)8,<br>
bit-depth-chroma=(uint)8, parsed=(boolean)true<br>
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =<br>
video/x-h264,<br>
codec_data=(buffer)01640033ffe1001e67640033acd9403c0043ec05a848104a000003000200000300791e30632c01000568ebecb22c,<br>
stream-format=(string)avc, alignment=(string)au, level=(string)5.1,<br>
profile=(string)high, width=(int)3840, height=(int)2160,<br>
pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1,<br>
interlace-mode=(string)progressive, *colorimetry=(string)bt2020*,<br>
chroma-site=(string)mpeg2, multiview-mode=(string)mono,<br>
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono<br>
<br>
With above x264enc 4k encode pipelines colorimetry bt2020 is getting<br>
negotiated & same is used by the qtmux element.<br>
<br>
*b) gst-launch-1.0 filesrc<br>
location=test_x264enc_3840x2160_I420_100frames.mp4 ! qtdemux ! h264parse !<br>
'video/x-h264, stream-format=(string)byte-stream, alignment=(string)au' !<br>
fakesink -v -e*<br>
....<br>
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =<br>
video/x-h264, stream-format=(string)avc, alignment=(string)au,<br>
level=(string)5.1, profile=(string)high,<br>
codec_data=(buffer)01640033ffe1001e67640033acd9403c0043ec05a848104a000003000200000300791e30632c01000568ebecb22c,<br>
width=(int)3840, height=(int)2160, framerate=(fraction)30/1,<br>
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,<br>
*colorimetry=(string)2:6:0:7*<br>
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps =<br>
video/x-h264, stream-format=(string)byte-stream, alignment=(string)au,<br>
level=(string)5.1, profile=(string)high, width=(int)3840, height=(int)2160,<br>
framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1,<br>
interlace-mode=(string)progressive, *colorimetry=(string)2:6:0:7*,<br>
chroma-format=(string)4:2:0, bit-depth-luma=(uint)8,<br>
bit-depth-chroma=(uint)8, parsed=(boolean)true<br>
<br>
When use above pipelines using same encoded mp4 file from a) then qtdemux<br>
provides colorimetry=2:6:0:7 with output caps.<br>
Now, this colorimetry values are different then the format derived<br>
colorimetry values for bt2020=2:6:11:7.<br>
<br>
Issue seems to be arising from the way qtmux generates ext_atom for colr_ext<br>
for colorimetry.<br>
while building colr_extension atom "colorimetry->transfer" enum for<br>
GST_VIDEO_TRANSFER_BT2020_12 is not handled.<br>
(Refer gst-plugins-good-1.14.3: gst/isomp4/gstqtmux.c+5594 &<br>
gst/isomp4/atoms.c+4152 )<br>
<br>
With qtdemux implementation also while parsing the track for colr_extension<br>
atom respective case is not handled yielding "colorimetry->transfer" enum<br>
value for GST_VIDEO_TRANSFER_UNKNOWN(0).<br>
(Refer gst-plugins-good-1.14.3: gst/isomp4/qtdemux.c+10168)<br>
<br>
Above creates problem with the decode pipeline where decoder have<br>
colorimetry equality check for format derived colorimetry<br>
(bt2020-"2:6:11:7") with caps received colorimetry values "2:6:0:7" in<br>
_set_format()<br>
<br>
It appears to be missing functionality with qtmux/qtdemux implementation &<br>
enhancement should be done for handling  bt2020 colorimetry value of<br>
GstVideoTransferFunction.<br>
<br>
Let me know in case any relevant inputs.<br>
<br>
-Thanks.<br>
<br>
<br>
<br>
<br>
<br>
<br>
--<br>
Sent from: <a href="http://gstreamer-devel.966125.n4.nabble.com/" rel="noreferrer noreferrer" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank" rel="noreferrer">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div></div></div>