This is a regression that was introduced by
commit 1803b3c185
" asfdemux: Add support for dvr-ms"
The problem is that some files/streams might contain stream definition
but there is no actual packets for those streams.
This was used to "define" streams with different bitrates for example.
The first_ts calculation resulted in never ever finding a valid first_ts
since some streams were empty, and therefore never "activating" itself.
Instead of that we first check if we are prerolled. And if we are we
unconditionally get the "first_ts"
The preroll check has been adapted to check whether streams of
each defined type (i.e. audio/video/sub) has been prerolled. This solves
the problem of having different streams of a particular type where only
one stream actually has data.
In the same vein as the previous commit, the end of the file might have been
cut and therefore contains bogus data.
If the object is too short, consider it as garbage and return a non-fatal
flow.
Regression introduced in 97294eb8bb
Some files have garbage at the end of the file, don't error out if we don't
find the index there.
Reverts back to previous behaviour (where corrupted/missing indexex were
not a fatal error).
Regression introduced in 97294eb8bb
... which is how it has always been until changed coincidentally in commit
9ee60482b2 which then prompted commit
dba14178ce to consider ACCURATE as well
to compensate for that in a lateral way
gstasfdemux.c: In function 'gst_asf_demux_parse_stream_object':
gstasfdemux.c:3001:39: error: '<<' in boolean context, did you mean '<' ? [-Werror=int-in-bool-context]
is_encrypted = ! !((flags & 0x8000) << 15);
~~~~~~~~~~~~~~~~~~^~~~~~
https://bugzilla.gnome.org/show_bug.cgi?id=779329
Otherwise we will happily index into the array at NULL if the requested
index is smaller than the number of languages that were previously
allocated.
https://bugzilla.gnome.org/show_bug.cgi?id=777937
An asf object can't realistically be bigger than 2**32 bytes.
If it reports a size bigger than that, consider it corrupt and properly
propagate the error back.
https://bugzilla.gnome.org/show_bug.cgi?id=775070
In some corrupted files, we could end up with no actual streams
being exposed.
In those cases, make sure we properly propagate the failure all
the way to the loop function. This avoids ending up in cases where
we are neither EOS'd nor ERROR'd out from a pipeline point of view.
https://bugzilla.gnome.org/show_bug.cgi?id=774846
Fix seeking when demuxer is in INDEX state. This happens when we
reached the end of the stream. It should still be possible to do
a flushing seek and seek back to any other position though. Instead
the demuxer would just go straight to EOS again instead of going
back to processing packets again from the new position.
https://bugzilla.gnome.org/show_bug.cgi?id=749066
Support reverse playback for ASF format.
Parse packets and queue the payloads, then push
the payload buffer to decoder in reverse order.
Video buffers are pushed from KeyFrame to next
Keyframe.
https://bugzilla.gnome.org/show_bug.cgi?id=757341
We don't want to unconditionally send an EOS event downstream, but might want
to send a SEGMENT_DONE message/event instead if a segment seek was done
before.
https://bugzilla.gnome.org/show_bug.cgi?id=755469
When discovering a particular asf file, caps structure doesn't have
codec_data, and this was not being checked before using the same,
resulting in assertion error
https://bugzilla.gnome.org/show_bug.cgi?id=752803
Add parsing of stereoscopic metadata, and place into the caps to
the decoder.
Fix parsing of Advanced Mutual Exclustion objects.
https://bugzilla.gnome.org/show_bug.cgi?id=711190
Based on a patch by HyeJin Choi <meeshel78@hotmail.com>
We should give a chance to upstream to handle TIME seek events before trying
to handle it in asfdemux.
Fix a bug where fast backward seeks where discarded right away because they
were not supported by asfdemux.
https://bugzilla.gnome.org/show_bug.cgi?id=734471
For bytestream we don't want to expose it as codec_data but rather as
streamheader as it is not out-of-band data but data that should be
prepended to the beginning of the stream before the other buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=735070