GNOME Bugzilla – Bug 764874
[VC1][decode]Filter caps do not completely specify the output format
Last modified: 2016-10-31 14:17:54 UTC
1. Testing Steps: ======================================================================== gst-launch-1.0 -q filesrc location=/media/HEVC/JVT10.0/$filename ! h265parse ! vaapidecode ! vaapipostproc format=i420 ! checksumsink2 frame-checksum=FALSE file-checksum=TRUE | tail -1 >> file_checksum_vaapi.txt 2. error log: root@x-kbl01:~/media_tools/decoder/bitstreams_vc1# LD_PRELOAD=/opt/X11R7/lib/libva.so:/GFX/Test/Infrastructure/infrastructure/tests/media_tools/i965_drv_video_hook_op.so gst-launch-1.0 filesrc location=/root/media_tools/decoder/bitstreams_vc1/SA00040.vc1 '!' 'video/x-wmv,profile=(string)advanced,' width=176, height=144 '!' vaapidecode '!' vaapisink sync=false libva info: VA-API version 0.39.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /opt/X11R7/lib/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Got context from element 'pipeline0': gst.vaapi.Display=context, gst.vaapi.Display=(GstVaapiDisplay)NULL; ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0: Filter caps do not completely specify the output format Additional debug info: gstcapsfilter.c(455): gst_capsfilter_prepare_buf (): /GstPipeline:pipeline0/GstCapsFilter:capsfilter0: Output caps are unfixed: video/x-wmv, width=(int)176, height=(int)144, framerate=(fraction)[ 0/1, 2147483647/1 ], wmvversion=(int)3, format=(string)WVC1, profile=(string)advanced ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... 3. Testing Env: ======================================================================== gst_plugins_vaapi: (master)506c9e2b5bbc50730b0083598b346b0fcc41ec78 libva: (master)2339d10b9a39ba4f7173053b9eab8d6a151717a5 Libva_intel_driver: (master)2c1bec03889fe759a33c087a7c107ad84bbb72fb 3. Frequency of Occurence: ======================================================================== 100%
Fei, (In reply to Fei from comment #0) > 1. Testing Steps: > ======================================================================== > gst-launch-1.0 -q filesrc location=/media/HEVC/JVT10.0/$filename ! h265parse > ! vaapidecode ! vaapipostproc format=i420 ! checksumsink2 > frame-checksum=FALSE file-checksum=TRUE | tail -1 >> file_checksum_vaapi.txt > This is HEVC test case, not vc1 ;) gst-launch-1.0 filesrc location=/root/media_tools/decoder/bitstreams_vc1/SA00040.vc1 '!' video/x-wmv,profile=(string)advanced,' width=176, height=144 '!' vaapidecode '!' vaapisink sync=false
@Victor: This is something you have fixed many times before ;) Either test case is wrong or we are making same regression again and again. Could you please have a look?
(In reply to sreerenj from comment #1) > Fei, > > (In reply to Fei from comment #0) > > 1. Testing Steps: > > ======================================================================== > > gst-launch-1.0 -q filesrc location=/media/HEVC/JVT10.0/$filename ! h265parse > > ! vaapidecode ! vaapipostproc format=i420 ! checksumsink2 > > frame-checksum=FALSE file-checksum=TRUE | tail -1 >> file_checksum_vaapi.txt > > > > This is HEVC test case, not vc1 ;) > > gst-launch-1.0 filesrc > location=/root/media_tools/decoder/bitstreams_vc1/SA00040.vc1 '!' > video/x-wmv,profile=(string)advanced,' width=176, height=144 '!' > vaapidecode '!' vaapisink sync=false Sree, you are right, sorry for duplicated the wrong cmd line.
Raising the severity since it preventing all vc1 decode test cases.
(In reply to Fei from comment #0) > gst-launch-1.0 filesrc > location=/root/media_tools/decoder/bitstreams_vc1/SA00040.vc1 '!' > 'video/x-wmv,profile=(string)advanced,' width=176, height=144 '!' > vaapidecode '!' vaapisink sync=false > libva info: VA-API version 0.39.0 > libva info: va_getDriverName() returns 0 > libva info: Trying to open /opt/X11R7/lib/dri/i965_drv_video.so > libva info: Found init function __vaDriverInit_0_39 > libva info: va_openDriver() returns 0 > Setting pipeline to PAUSED ... > Pipeline is PREROLLING ... > Got context from element 'pipeline0': gst.vaapi.Display=context, gst.vaapi.Display=(GstVaapiDisplay)NULL; > ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0: Filter caps do not completely specify the output format > Additional debug info: gstcapsfilter.c(455): gst_capsfilter_prepare_buf (): /GstPipeline:pipeline0/GstCapsFilter:capsfilter0: > Output caps are unfixed: video/x-wmv, width=(int)176, height=(int)144, framerate=(fraction)[ 0/1, 2147483647/1 ], wmvversion=(int)3, format=(string)WVC1, profile=(string)advanced > ERROR: pipeline doesn't want to preroll. > Setting pipeline to NULL ... > Freeing pipeline ... Damn vc1parser. Before you could run this pipeline because vaapidecode was laxer, accepting incomplete sink caps, but I suspect since commit 548528c8 this is not the possible anymore. Nonetheless the error is quite clear: the pipeline needs to specify the framerate since it has a non-fixed value: framerate=(fraction)[ 0/1, 2147483647/1 ] If you run this pipeline it should work: gst-launch-1.0 filesrc location=/root/media_tools/decoder/bitstreams_vc1/SA00040.vc1 ! \ video/x-wmv, profile=advanced, width=176, height=144,framerate=14/1 ! \ vaapidecode ! vaapisink sync=false
(In reply to Víctor Manuel Jáquez Leal from comment #5) > (In reply to Fei from comment #0) > > gst-launch-1.0 filesrc > > location=/root/media_tools/decoder/bitstreams_vc1/SA00040.vc1 '!' > > 'video/x-wmv,profile=(string)advanced,' width=176, height=144 '!' > > vaapidecode '!' vaapisink sync=false > > libva info: VA-API version 0.39.0 > > libva info: va_getDriverName() returns 0 > > libva info: Trying to open /opt/X11R7/lib/dri/i965_drv_video.so > > libva info: Found init function __vaDriverInit_0_39 > > libva info: va_openDriver() returns 0 > > Setting pipeline to PAUSED ... > > Pipeline is PREROLLING ... > > Got context from element 'pipeline0': gst.vaapi.Display=context, gst.vaapi.Display=(GstVaapiDisplay)NULL; > > ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0: Filter caps do not completely specify the output format > > Additional debug info: gstcapsfilter.c(455): gst_capsfilter_prepare_buf (): /GstPipeline:pipeline0/GstCapsFilter:capsfilter0: > > Output caps are unfixed: video/x-wmv, width=(int)176, height=(int)144, framerate=(fraction)[ 0/1, 2147483647/1 ], wmvversion=(int)3, format=(string)WVC1, profile=(string)advanced > > ERROR: pipeline doesn't want to preroll. > > Setting pipeline to NULL ... > > Freeing pipeline ... > > Damn vc1parser. > > Before you could run this pipeline because vaapidecode was laxer, accepting > incomplete sink caps, but I suspect since commit 548528c8 this is not the > possible anymore. > > Nonetheless the error is quite clear: the pipeline needs to specify the > framerate since it has a non-fixed value: > > framerate=(fraction)[ 0/1, 2147483647/1 ] > > If you run this pipeline it should work: > > gst-launch-1.0 filesrc > location=/root/media_tools/decoder/bitstreams_vc1/SA00040.vc1 ! \ > video/x-wmv, profile=advanced, width=176, height=144,framerate=14/1 ! \ > vaapidecode ! vaapisink sync=false @Victor, with you cmdline, vc1 decode pass rate back to 47/49. So I will update my test script and close this bug.