After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 786797 - codecparsers: h264: store SPS's and subset SPS's separately
codecparsers: h264: store SPS's and subset SPS's separately
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-08-25 11:42 UTC by Orestis Floros
Modified: 2018-11-03 14:12 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
sample svc conformance stream (768.92 KB, application/octet-stream)
2017-08-26 22:37 UTC, Orestis Floros
Details

Description Orestis Floros 2017-08-25 11:42:33 UTC
From the H264 spec: H.7.4.1.2.1 - Order of MVC sequence parameter set RBSPs and picture parameter set RBSPs and their activation:

> NOTE 5 – A decoder must be capable of simultaneously storing the contents of the sequence parameter sets and subset sequence
> parameter sets for all values of seq_parameter_set_id. The content of the sequence parameter set with a particular value of
> seq_parameter_set_id is overwritten when a new sequence parameter set NAL unit with the same value of seq_parameter_set_id is
> received, and the content of the subset sequence parameter set with a particular value of seq_parameter_set_id is overwritten when
> a new subset sequence parameter set NAL unit with the same value of seq_parameter_set_id is received.

This should also be required for parsing SVC streams.

Some discussion in bug 732266:
https://bugzilla.gnome.org/show_bug.cgi?id=732266#c36
Comment 1 sreerenj 2017-08-26 21:55:13 UTC
It seems there are samples with the same value of sequence_parameter_set_id in SPS and SSPS. Current h264 codecparser implementation using the same array for storing sps and ssps,  then sps get overridden by ssps if both have the same id. As per the spec "SPS should be replaced by another SPS of same sequence_parameter_set_id" AND "SSPS should be replaced by another SSPS of same sequece_parameter_set_id".  

I think we should use a separate array "GstH264SPS ssps[]" and "GstH264SPS *last_ssps" in H264NalParser.
And changes required in many places for MVC parsing (SVC isn't implemented yet).

It is going to bring an ABI breakage too.

@Orestis: Can you please attach the sample stream which has this issue?
Comment 2 Orestis Floros 2017-08-26 22:37:57 UTC
Created attachment 358496 [details]
sample svc conformance stream

(In reply to sreerenj from comment #1)
> @Orestis: Can you please attach the sample stream which has this issue?

There isn't only one stream that exhibits this issue. I haven't found any conformance (or other) MVC bitstream that does this but 137 out of the 258 SVC ones do. Here is a sample from http://www.itu.int/net/itu-t/sigdb/spevideo/VideoForm-s.aspx?val=102002641.
Comment 3 GStreamer system administrator 2018-11-03 14:12:34 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/602.