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 730225 - hlsdemux switch to higher quality don't connect all pads right
hlsdemux switch to higher quality don't connect all pads right
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
1.3.1
Other Linux
: Normal normal
: 1.5.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-05-15 23:25 UTC by m][sko
Modified: 2014-11-08 14:14 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
adaptive pipeline wrong pipeline (1.03 MB, image/png)
2014-05-15 23:25 UTC, m][sko
  Details
pipeline after quality change 2. (898.66 KB, image/png)
2014-05-15 23:26 UTC, m][sko
  Details
gst_m3u8_client_get_playlist support for max video width and height (4.02 KB, patch)
2014-05-22 00:27 UTC, m][sko
none Details | Review
select stream quality base on video max resolution (4.07 KB, patch)
2014-05-22 00:28 UTC, m][sko
none Details | Review
xvimagesink emit window size change events (1.70 KB, patch)
2014-05-22 00:40 UTC, m][sko
none Details | Review
log file (18.01 KB, text/x-log)
2014-05-22 21:11 UTC, m][sko
  Details

Description m][sko 2014-05-15 23:25:56 UTC
Created attachment 276633 [details]
adaptive pipeline wrong pipeline

When hlsdemux switch to higher quality hlsdemux start to download new fragments(new quality) really fast

sources from master

test pipeline
gst-launch-1.0 playbin uri="http://playertest.longtailvideo.com/adaptive/bbbfull/bbbfull.m3u8"

And sometimes 
attached file i
Comment 1 m][sko 2014-05-15 23:26:46 UTC
Created attachment 276634 [details]
pipeline after quality change 2.
Comment 2 m][sko 2014-05-15 23:28:52 UTC
I get 2 different pipeline in some situation
after change of quality
Comment 3 Sebastian Dröge (slomo) 2014-05-19 08:29:34 UTC
What exactly is the problem you're seeing here? In the first pipeline, decodebin has the second group unconnected inside itself... that looks a bit weird but should be correct. When bitrates are switched in hlsdemux, it will create a new group each time.
Comment 4 m][sko 2014-05-19 09:54:50 UTC
In common situation hlsdemux download fragments in speed relative to playback.
When hlsdemux switch to higher(different) quality, it start to download new fragments(from better quality) much faster.
It instantly(as fast as possible) download all fragments in sequence order.

I will attach my patch for resolution limit
And you will see what will happen when you change stream qualities.
But If you have different test tools (traffic shaper,..) you can simulate this scenario.
Comment 5 m][sko 2014-05-22 00:27:56 UTC
Created attachment 276961 [details] [review]
gst_m3u8_client_get_playlist support for max video width and height
Comment 6 m][sko 2014-05-22 00:28:45 UTC
Created attachment 276962 [details] [review]
select stream quality base on video max resolution
Comment 7 m][sko 2014-05-22 00:40:00 UTC
Created attachment 276963 [details] [review]
xvimagesink emit window size change events
Comment 8 m][sko 2014-05-22 00:48:14 UTC
I made 3 patches for testing of adaptive streaming 

gst-launch-1.0 playbin
uri="http://playertest.longtailvideo.com/adaptive/bbbfull/bbbfull.m3u8"

Change window resolution to something higher.
then  hlsdemux switch to better fragments, you can observer speed up in fragments download( 10 for example and really fast).

And I hope that you will answer my email about HLS/DASH and RESOLUTION extension
Comment 9 Sebastian Dröge (slomo) 2014-05-22 06:48:19 UTC
How are these patches related to the original problem reported here?

For the original problem, if hlsdemux downloads all fragments as fast as possible until the end after a bitrate switch, that would be a bug. That would mean that the limits in the multiqueues don't kick in for whatever reason... and you should be able to see that from the debug logs.
Comment 10 m][sko 2014-05-22 07:17:12 UTC
problem don't change
But it was really hard to reproduce it without traffic shaper and I don't know how to make unit test for this scenario.
My patch added another dimension(max video resolution) for adaptive scenario.
Change of output window is pretty much same as if you get better bandwidth.
Then you can reproduce my bug report
Comment 11 m][sko 2014-05-22 21:11:21 UTC
GST_DEBUG="hlsdemux:5" gst-launch-1.0 playbin uri="http://playertest.longtailvideo.com/adaptive/bbbfull/bbbfull.m3u8" 2>dump.log


dump is in attachments
Comment 12 m][sko 2014-05-22 21:11:49 UTC
Created attachment 277008 [details]
log file
Comment 13 Thiago Sousa Santos 2014-08-19 21:12:16 UTC
The problem of the unlimited queues and downloading as fast as possible is now solved in decodebin. Is there anything left to do here?
Comment 14 m][sko 2014-08-19 21:30:47 UTC
I still would like to integrate limiter of  MAX RESULUTION 
https://bug730225.bugzilla-attachments.gnome.org/attachment.cgi?id=276961
at least some support in code

https://bugzilla.gnome.org/show_bug.cgi?id=730068
Comment 15 Thiago Sousa Santos 2014-08-19 21:33:50 UTC
(In reply to comment #14)
> I still would like to integrate limiter of  MAX RESULUTION 
> https://bug730225.bugzilla-attachments.gnome.org/attachment.cgi?id=276961
> at least some support in code
> 
> https://bugzilla.gnome.org/show_bug.cgi?id=730068

Could you open a bug specific to this issue so we can track it there? Or any other separate issue that you might have.

Anything else related to this one?
Comment 16 m][sko 2014-08-19 22:24:10 UTC
I create this bug as I sow wired pipeline graph
but it looks like it is related to this
https://bugzilla.gnome.org/show_bug.cgi?id=731404
but that is separate bug
Comment 17 Sebastian Dröge (slomo) 2014-08-25 07:44:29 UTC
Should we close this bug then?
Comment 18 m][sko 2014-08-25 10:07:18 UTC
yes, you can close it