That is, in files that have no index (Cue), perform seek by scanning for
nearest cluster with timecode before requested position. Scanning is done
as a combination of interpolation and sequential scan.
Fixes#617368.
Timestamp rounding issues could lead to going backwards 2 keyframe periods
(rather than only 1). While this is not necessarily a problem, it might
potentially place additional (buffering) load on downstream and could be
avoided (because We Can).
Fixes#623629.
There seems to be a bug in libmp4v2 that generates a MPEG4BitRateBox as
(bufferSizeDB, avgBitrate, maxBitrate) instead of (bufferSizeDB,
maxBitrate, avgBitrate), according to the spec. I used the mp4file
output while writing this code, so the order is wrong. This patches
fixes that.
https://bugzilla.gnome.org/show_bug.cgi?id=623654
PluginInfo is quite a sizeable struct, let's not allocate it on the
stack, especially not if we're copying it over into another dynamically
allocated copy anyway.
Fixes#570761.
If we restart the Stream in the case of doing a transition from
PAUSED_TO_READY and back with READY_TO_PAUSED aso. the duration of the video
will get calculated even if we have a avi header with that information.
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
On windows builds, sets source address for bind to INADDR_ANY, while
maintaining the original multicast group address for subsequent join.
Fixes#595978
Skip everything before the @ sign in the url location. VLC uses that as the
remote address to connect to (but we ignore it for now). This makes our udp urls
compatible with the ones used by VLC.
Fixes#597695
Keep a global connection for aggregate control but also keep stream connections
for non-aggregate control.
Add some helper methods to connect/close/flush the connections.
Subsequent entry time calculations use blockalign value to determine
number of frames per chunk, and blockalign == 1 is then most unlikely to result
in reasonable values (which also aligns with "spec").
So matroska's Block structure has no keyframe flag, only the SimpleBlock has it.
To detect keyframes in Blocks, it is just the BlockGroup container that needs
to have a ReferenceBlock attached if it is a delta frame in video.