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 752340 - dashdemux: period bitstreamSwitching is not used
dashdemux: period bitstreamSwitching is not used
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 1.7.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-07-13 17:36 UTC by Florin Apostol
Modified: 2015-10-30 16:08 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
proposed fix (6.03 KB, patch)
2015-07-13 17:39 UTC, Florin Apostol
none Details | Review
proposed fix (6.64 KB, patch)
2015-10-30 15:57 UTC, Florin Apostol
none Details | Review

Description Florin Apostol 2015-07-13 17:36:57 UTC
The Period's bitstreamSwitching flag should be inherited by all the Adaptation sets. Currently it is ignored and the AdaptationSet's bitstreamSwitching defaults to false instead of the value from Period.
Comment 1 Florin Apostol 2015-07-13 17:39:40 UTC
Created attachment 307360 [details] [review]
proposed fix

attached patch containing unit test and proposed fix
Comment 2 Vincent Penquerc'h 2015-09-17 11:04:52 UTC
Review of attachment 307360 [details] [review]:

::: tests/check/elements/dash_mpd.c
@@ +2430,3 @@
+  bitstreamSwitchingFlag =
+      gst_mpd_client_get_bitstream_switching_flag (activeStream);
+  assert_equals_int (bitstreamSwitchingFlag, TRUE);

Not sure it's a good idea to test a behavior that's just an implementation decision that's not the standard (overwriting an actual value specified in the child) vs plain inheritance.
Comment 3 Florin Apostol 2015-09-17 12:30:58 UTC
(In reply to Vincent Penquerc'h from comment #2)
> Review of attachment 307360 [details] [review] [review]:
> 
> ::: tests/check/elements/dash_mpd.c
> @@ +2430,3 @@
> +  bitstreamSwitchingFlag =
> +      gst_mpd_client_get_bitstream_switching_flag (activeStream);
> +  assert_equals_int (bitstreamSwitchingFlag, TRUE);
> 
> Not sure it's a good idea to test a behavior that's just an implementation
> decision that's not the standard (overwriting an actual value specified in
> the child) vs plain inheritance.

It is the standard behavior:
Table 4 — Semantics of Period element
@bitstreamSwitching
When set to ‘true’, this is equivalent as if the AdaptationSet@bitstreamSwitching for each Adaptation Set contained in this Period is set to 'true'. In this case, the AdaptationSet@bitstreamSwitching attribute shall not be set to 'false' for any Adaptation Set in this Period.
Comment 4 Vincent Penquerc'h 2015-10-30 15:23:35 UTC
No idea why I thought this wasn't.
In any case, this doesn't build anymore, implicit declaration of function ‘gst_mpd_client_get_stream_mimeType'.
Can you please update it to laster master ?
Comment 5 Florin Apostol 2015-10-30 15:57:37 UTC
Created attachment 314500 [details] [review]
proposed fix

rebased the patch
Comment 6 Vincent Penquerc'h 2015-10-30 16:08:37 UTC
commit d6e805a283b36c38f9718a0ebd5089d335749888
Author: Florin Apostol <florin.apostol@oregan.net>
Date:   Fri Oct 30 15:55:19 2015 +0000

    dashdemux: inherit bitstreamSwitching from Period to AdaptationSet
    
    https://bugzilla.gnome.org/show_bug.cgi?id=752340