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 768440 - flvdemux: Create per-stream tag lists
flvdemux: Create per-stream tag lists
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.8.2
Other All
: Normal normal
: 1.9.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-07-05 11:24 UTC by Jan Alexander Steffens (heftig)
Modified: 2016-07-07 07:22 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
[PATCH] flvdemux: Create per-stream tag lists (9.36 KB, patch)
2016-07-05 11:24 UTC, Jan Alexander Steffens (heftig)
none Details | Review
[PATCH] flvdemux: Create per-stream tag lists (9.77 KB, patch)
2016-07-05 12:32 UTC, Jan Alexander Steffens (heftig)
none Details | Review
[PATCH 1/2] flvdemux: Refactor metadata tag handling (8.67 KB, patch)
2016-07-06 10:15 UTC, Jan Alexander Steffens (heftig)
committed Details | Review
[PATCH 2/2] flvdemux: Push nominal bitrate tags (3.29 KB, patch)
2016-07-06 10:15 UTC, Jan Alexander Steffens (heftig)
committed Details | Review

Description Jan Alexander Steffens (heftig) 2016-07-05 11:24:00 UTC
Created attachment 330898 [details] [review]
[PATCH] flvdemux: Create per-stream tag lists

Sorts the tags into global and per-stream tag lists, adding
bitrate tags.

With the patch from bug 768439 applied, flvmux will not set
calculated bitrates anymore, since these are posted too late.

When remuxing FLV => FLV, this now passes through upstream tags.
Comment 1 Jan Alexander Steffens (heftig) 2016-07-05 11:43:39 UTC
Whoops, this broke pushing out global tags on both streams reliably. Will fix.
Comment 2 Jan Alexander Steffens (heftig) 2016-07-05 12:32:05 UTC
Created attachment 330901 [details] [review]
[PATCH] flvdemux: Create per-stream tag lists

Sorts the tags into per-stream tag lists, also adding nominal
bitrate tags. The global tag list is eliminated, to simplify
handling pads appearing late. The old code also used the FLV
header to determine whether all pads had appeared, despite also
advising that the header cannot be trusted.

When remuxing FLV => FLV, this now passes through upstream tags
for the nominal bitrate.
Comment 3 Sebastian Dröge (slomo) 2016-07-05 16:36:27 UTC
Comment on attachment 330901 [details] [review]
[PATCH] flvdemux: Create per-stream tag lists

There should be a taglist with global scope for the global tags, and then per-stream taglists with stream scope for the other tags. And both should be sent downstream then, in separate events.
Comment 4 Jan Alexander Steffens (heftig) 2016-07-06 10:15:15 UTC
Created attachment 330935 [details] [review]
[PATCH 1/2] flvdemux: Refactor metadata tag handling

The FLV header cannot be trusted to indicate video or
audio presence, as the comments already mention. Don't
delay pushing tags waiting for streams that might never
appear.

Tags are now pushed immediately after they change:
  - After parsing an onMetaData script object
  - After negotiating caps on a pad
Comment 5 Jan Alexander Steffens (heftig) 2016-07-06 10:15:47 UTC
Created attachment 330936 [details] [review]
[PATCH 2/2] flvdemux: Push nominal bitrate tags

Add per-stream tag lists, which are used to send nominal
bitrate tags. When remuxing FLV => FLV, this now passes
through the upstream bitrate.
Comment 6 Sebastian Dröge (slomo) 2016-07-07 07:22:27 UTC
commit b3cfbe575c1f0098a98695968d218885365950a1
Author: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
Date:   Wed Jul 6 09:25:00 2016 +0200

    flvdemux: Push nominal bitrate tags
    
    Add per-stream tag lists, which are used to send nominal
    bitrate tags. When remuxing FLV => FLV, this now passes
    through the upstream bitrate.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=768440

commit ee44e60f7b8e0cd6ee30944cee24b691b1cdf0d5
Author: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
Date:   Wed Jul 6 09:24:49 2016 +0200

    flvdemux: Refactor metadata tag handling
    
    The FLV header cannot be trusted to indicate video or
    audio presence, as the comments already mention. Don't
    delay pushing tags waiting for streams that might never
    appear.
    
    Tags are now pushed immediately after they change:
      - After parsing an onMetaData script object
      - After negotiating caps on a pad
    
    https://bugzilla.gnome.org/show_bug.cgi?id=768440