Discussion:
[Bug 778750] New: For vaapih264enc without h264parse, using the adaptive 8x8 DCT encoding tool breaks 720p 30 fps clips
Add Reply
"GStreamer" (GNOME Bugzilla)
2017-02-16 09:39:58 UTC
Reply
Permalink
Raw Message
https://bugzilla.gnome.org/show_bug.cgi?id=778750

Bug ID: 778750
Summary: For vaapih264enc without h264parse, using the adaptive
8x8 DCT encoding tool breaks 720p 30 fps clips
Classification: Platform
Product: GStreamer
Version: 1.11.1
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gstreamer-vaapi
Assignee: gstreamer-***@lists.freedesktop.org
Reporter: ***@intel.com
QA Contact: gstreamer-***@lists.freedesktop.org
CC: ***@gmail.com, ***@igalia.com
GNOME version: ---

The following command creates an invalid video clip:

gst-launch-1.0 -e videotestsrc num-buffers=60 !
video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! vaapih264enc !
mp4mux ! filesink location=test.mp4

When playing with this command:
gst-play-1.0 -v --gst-debug=*:4,vaapi*:4 test.mp4

It throws this error:
0:00:00.073091622 1373 0x7ff9b0004850 WARN codecparsers_h264
gsth264parser.c:508:gst_h264_parse_vui_parameters: failed to read uint8, nbits:
1
0:00:00.073109398 1373 0x7ff9b0004850 WARN codecparsers_h264
gsth264parser.c:522:gst_h264_parse_vui_parameters: error parsing "VUI
Parameters"
0:00:00.073120611 1373 0x7ff9b0004850 WARN codecparsers_h264
gsth264parser.c:1776:gst_h264_parse_sps: error parsing "Sequence parameter set"
0:00:00.073133640 1373 0x7ff9b0004850 ERROR vaapidecode
gstvaapidecode.c:1094:gst_vaapidecode_parse_frame: parse error 8

Also running the clip through the Intel Video Pro Analyzer shows that there are
decoding issues with the Sequence Parameter Set and Picture Parameter Set.

This problem relates to the usage of the adaptive 8x8 DCT encoding tool and was
introduced when the flag for that feature was turned on:
4aec5bd encoder: h264: Use high profile by default

It is very specific to the 720p resolution and the 30 fps framerarate. When
testing VGA, 1080p and 4k, they all work. Also changing the framerate to e.g.
20 or 35 fps makes it work.

A workaround is to add an h264parse element to the capture command:
gst-launch-1.0 -e videotestsrc num-buffers=60 !
video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! vaapih264enc !
h264parse ! mp4mux ! filesink location=test.mp4

libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.3)
vainfo: Driver version: Intel i965 driver for Intel(R) Broxton - 1.8.0.pre1
(1.7.3-287-g05d2d25)
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
"GStreamer" (GNOME Bugzilla)
2017-02-16 20:59:38 UTC
Reply
Permalink
Raw Message
https://bugzilla.gnome.org/show_bug.cgi?id=778750

--- Comment #1 from sreerenj <***@gmail.com> ---
As I mentioned in the mail, "adding h264parse" is not a workaround. I always
prefer to have the h264parse after the encoder.

But it is good to check why the pipeline with out parser is failing.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
"GStreamer" (GNOME Bugzilla)
2017-02-17 05:52:29 UTC
Reply
Permalink
Raw Message
https://bugzilla.gnome.org/show_bug.cgi?id=778750

Hyunjun Ko <***@igalia.com> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |***@igalia.com
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
Loading...