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 736474 - vc1parse: malformed sequence layer header and STRUCT_C
vc1parse: malformed sequence layer header and STRUCT_C
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 1.4.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-09-11 13:45 UTC by Aurélien Zanelli
Modified: 2014-09-13 13:50 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
vc1parse: fix malformed sequence layer header and STRUCT_C (6.73 KB, patch)
2014-09-11 13:46 UTC, Aurélien Zanelli
committed Details | Review

Description Aurélien Zanelli 2014-09-11 13:45:31 UTC
I was playing around with vc1parse to see how I can implement format conversion and I think I found that sequence layer header and STRUCT_C are malformed when they are created in update_caps().

For STRUCT_C, some reserved bits are not set to their required value as specified by SMPTE 421M Annex J.

For Sequence Layer, defined in Annex L, 0x00000004 unsigned integer is before STRUCT_C and sequence layer shall be represented as a sequence of 32 bits unsigned integers and shall be serialized in little-endian byte order except for STRUCT_C which shall be serialized in big-endian byte-order.
Comment 1 Aurélien Zanelli 2014-09-11 13:46:58 UTC
Created attachment 285909 [details] [review]
vc1parse: fix malformed sequence layer header and STRUCT_C

Proposal patch to fix this.
Comment 2 Sebastian Dröge (slomo) 2014-09-12 13:11:14 UTC
commit 2071c139364be9bde1b10ade86d056464a90ebb7
Author: Aurélien Zanelli <aurelien.zanelli@parrot.com>
Date:   Thu Sep 11 14:36:31 2014 +0200

    vc1parse: fix malformed sequence layer header and STRUCT_C
    
    This commit fix several issues with sequence layer header forging on
    update_caps():
    - 0x00000004 unsigned integer is before STRUCT_C.
    
    - Set reserved bits of STRUCT_C to their values for simple/main
      profiles in sequence layer header format and ASF header format.
    
    - Sequence layer shall be represented as a sequence of 32 bits unsigned
      integers and shall be serialized in little-endian byte order except
      for STRUCT_C which shall be serialized in big-endian byte-order.
    
    See SMPTE 421M Annex L for more details about sequence layer format.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=736474