[Bug 755036] mssdemux: improved live playback support

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu Nov 10 12:29:41 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=755036

--- Comment #14 from Philippe Normand <philn at igalia.com> ---
(In reply to Matthew Waters (ystreet00) from comment #13)
> Review of attachment 339338 [details] [review]:
> 
> The fragment parsing feels like it should go into qtdemux instead.  Any
> reason why it isn't?
> 

I agree it is a bit weird indeed. It could go to qtdemux but then I think we
would need relay the parsing results back to the mss demuxer somehow.

> ::: ext/smoothstreaming/gstmssmanifest.c
> @@ +78,3 @@
>  
> +  gboolean has_live_fragments;
> +  GQueue live_fragments;
> 
> Why the separate variable instead of changing over the existing GList
> fragments?
> 

It can be changed to use the existing list. I first thought it was better to
differenciate the fragments coming from the manifest from the ones built during
the current fragment parsing.

> @@ +267,3 @@
> +      manifest->is_live ? "yes" : "no",
> manifest->look_ahead_fragment_count);
> +  stream->has_live_fragments = manifest->is_live
> +      && manifest->look_ahead_fragment_count;
> 
> What exactly is the has_live_fragments condition signalling?
> 
> The possible existence of parsing needed for the TfrfBox?
> 

Yes

> @@ +1117,3 @@
> +    fragment = stream->current_fragment->data;
> +    if (fragment->time <= prev_fragment->time) {
> +      while (fragment->time <= prev_fragment->time) {
> 
> double condition without an else on the if seems a little pointless no?
> 
> Also, what exactly is the while loop meant to solve?
> 
> When aren't the fragments that you're iterating over, not in order?
> 
> In any case, this seems like it should be a separate patch.

Yes this could be split out I think. Currently I don't remember exactly why I
wrote this :)
I'll check it again.

> 
> @@ +1526,3 @@
> +
> +void
> +gst_mss_stream_fragment_parse (GstMssStream * stream, GstBuffer * buffer)
> 
> parse_fragment() is a better name.
> 

Surely can be renamed yes :)

> @@ +1545,3 @@
> +
> +  for (guint8 index = 0; index < stream->fragment_parser.tfrf.entries_count;
> +      index++) {
> 
> Any particular reason you chose an 8-bit integer for an index?
> 
> That would only allow 255 fragments.

The streams I've tested never had more than 2 look-ahead fragments. But yeah,
that 8-bit integer can be changed, though I suppose it's unlikely to have more
than 255 look-ahead fragments.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list