matroskademux fails to link pads in some videos if nvh264dec is used

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

matroskademux fails to link pads in some videos if nvh264dec is used

Tamas
Hi,

I bumped into a problem trying to play some mkv files from my collection.
First, I'd like to ask for some help to determine whether this is a
gstreamer issue or not.

Windows 10 x64
gstreamer 1.17 current master; compiled with Cerbero, variants visualstudio,
intelmsdk, nvcodec

The test pipeline "gst-launch-1.0.exe filesrc location=x.mkv ! matroskademux
! h264parse ! nvh264dec ! fakesink" produced this error for the problematic
files:

    ERROR: from element
/GstPipeline:pipeline0/GstMatroskaDemux:matroskademux0: Internal data stream
error.
    Additional debug info:
    ../gst/matroska/matroska-demux.c(5810): gst_matroska_demux_loop ():
/GstPipeline:pipeline0/GstMatroskaDemux:matroskademux0:
    streaming stopped, reason not-linked (-1)
    ERROR: pipeline doesn't want to preroll.
    Got context from element 'nvh264dec0': gst.cuda.context=context,
gst.cuda.context=(GstCudaContext)"\(GstCudaContext\)\ cudacontext0",
cuda-device-id=(int)0;
    Setting pipeline to PAUSED ...
    Got context from element 'nvh264dec0': gst.gl.GLDisplay=context,
gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplay\)\ gldisplay0";
    WARNING: from element
/GstPipeline:pipeline0/GstMatroskaDemux:matroskademux0: Delayed linking
failed.
    Additional debug info:
    gst/parse/grammar.y(544): gst_parse_no_more_pads ():
/GstPipeline:pipeline0/GstMatroskaDemux:matroskademux0:
    failed delayed linking some pad of GstMatroskaDemux named matroskademux0
to some pad of GstH264Parse named h264parse0

Using avdec_h264 instead of nvh264dec works fine.

A list of caps on matroska source video pad retrieved from debug logs, and
matroska info for the video stream:

#1 FAILED

    video/x-h264
    level=(string)4.1
    profile=(string)progressive-high
   
codec_data=(buffer)01640829ffe1001967640829acd9805005ba1000000300100000030328f18319a001000668e978232c8b
    stream-format=(string)avc
    alignment=(string)au
    width=(int)1280
    height=(int)720
    framerate=(fraction)25/1
    interlace-mode=(string)progressive

    Video
    ID                             : 1
    Format                         : AVC
    Format/Info                    : Advanced Video Codec
    Format profile                 : High@L4.1
    Format settings                : CABAC / 5 Ref Frames
    Format settings, CABAC         : Yes
    Format settings, Reference fra : 5 frames
    Codec ID                       : V_MPEG4/ISO/AVC
    Duration                       : 46 min 1 s
    Bit rate                       : 2 711 kb/s
    Width                          : 1 280 pixels
    Height                         : 720 pixels
    Display aspect ratio           : 16:9
    Frame rate mode                : Constant
    Frame rate                     : 25.000 FPS
    Color space                    : YUV
    Chroma subsampling             : 4:2:0
    Bit depth                      : 8 bits
    Scan type                      : Progressive
    Bits/(Pixel*Frame)             : 0.118
    Stream size                    : 892 MiB (92%)
    Writing library                : x264 core 157 r2969 d4099dd
    Encoding settings              : ...
    Language                       : English
    Default                        : Yes
    Forced                         : No

#2 FAILED

    video/x-h264
    level=(string)4.1
    profile=(string)progressive-high
   
codec_data=(buffer)01640829ffe1001967640829acd9805005ba1000000300100000030328f18319a001000668e978232c8b
    stream-format=(string)avc
    alignment=(string)au
    width=(int)1280
    height=(int)720
    framerate=(fraction)25/1

    Video
    ID                             : 1
    Format                         : AVC
    Format/Info                    : Advanced Video Codec
    Format profile                 : High@L4.1
    Format settings                : CABAC / 5 Ref Frames
    Format settings, CABAC         : Yes
    Format settings, Reference fra : 5 frames
    Codec ID                       : V_MPEG4/ISO/AVC
    Duration                       : 22 min 25 s
    Bit rate                       : 3 013 kb/s
    Width                          : 1 280 pixels
    Height                         : 720 pixels
    Display aspect ratio           : 16:9
    Frame rate mode                : Constant
    Frame rate                     : 23.976 (24000/1001) FPS
    Color space                    : YUV
    Chroma subsampling             : 4:2:0
    Bit depth                      : 8 bits
    Scan type                      : Progressive
    Bits/(Pixel*Frame)             : 0.136
    Stream size                    : 483 MiB (87%)
    Writing library                : x264 core 157 r2969 d4099dd
    Encoding settings              : ...
    Default                        : Yes
    Forced                         : No
    Color range                    : Limited
    Matrix coefficients            : BT.709

#3 OK

    video/x-h264
    level=(string)4.1
    profile=(string)high
   
codec_data=(buffer)01640029ffe1001c67640029acd98050051b016a040402800000030080000018478c18cd01000668e978232c8b
    stream-format=(string)avc
    alignment=(string)au
    width=(int)1280
    height=(int)640
    pixel-aspect-ratio=(fraction)1/1
    framerate=(fraction)24/1

    Video
    ID                             : 1
    Format                         : AVC
    Format/Info                    : Advanced Video Codec
    Format profile                 : High@L4.1
    Format settings                : CABAC / 5 Ref Frames
    Format settings, CABAC         : Yes
    Format settings, Reference fra : 5 frames
    Codec ID                       : V_MPEG4/ISO/AVC
    Duration                       : 51 min 30 s
    Bit rate                       : 1 829 kb/s
    Width                          : 1 280 pixels
    Height                         : 640 pixels
    Display aspect ratio           : 2.000
    Frame rate mode                : Constant
    Frame rate                     : 24.000 FPS
    Color space                    : YUV
    Chroma subsampling             : 4:2:0
    Bit depth                      : 8 bits
    Scan type                      : Progressive
    Bits/(Pixel*Frame)             : 0.093
    Stream size                    : 674 MiB (70%)
    Writing library                : x264 core 152 r2851 ba24899
    Encoding settings              : cabac=1 / ref=5 / deblock=1:-3:-3 /
analyse=0x3:0x113 / me=umh / subme=8 / psy=1 / psy_rd=1.00:0.15 /
mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 /
deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=20 /
lookahead_threads=3 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 /
bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=2
/ b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 /
keyint_min=24 / scenecut=40 / intra_refresh=0 / rc_lookahead=50 / rc=crf /
mbtree=1 / crf=18.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 /
ip_ratio=1.40 / aq=1:0.80
    Language                       : English
    Default                        : Yes
    Forced                         : No
    Color range                    : Limited
    Matrix coefficients            : BT.709

#4 OK (no matroska info)

    video/x-h264
    level=(string)3.1
    profile=(string)high
   
codec_data=(buffer)0164001fffe100286764001facd9405005bb016a020202800001f480005dc071200016e360000501bdd14600f183196001000568e93b3c8f
    stream-format=(string)avc
    alignment=(string)au
    width=(int)1280
    height=(int)720
    framerate=(fraction)24000/1001
    interlace-mode=(string)progressive
    colorimetry=(string)bt709

My impression looking at this is that the "progressive-high" profile might
not be acceptable for the nvcodec filter, but that's just a suspicion. On
the other hand, I don't really know what "progressive-high" means compared
to "high" - looking at the matroska info of video #3, it's not really
different at all from #1 and #2, in particular there's nothing progressive
about the failed ones that #3 doesn't have. So that means this is probably
beyond my understanding of encoding profiles.

I'm hoping the wiser people on this mailing list will tell me if this needs
a fix at all or it's just how things are, and if it needs a fix then is it
in some part of gstreamer?



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel