| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
In ID3 v2.3 compressed frames will have a 4-byte data length indicator
after the frame header to indicate the size of the decompressed data.
This integer is unlikely to be a sync-safe integer for v2.3 tags,
only in v2.4 it's sync-safe.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reversing the unsynchronisation seems to work slightly differently
for ID3 v2.3 tags and v2.4 tags: v2.3 tags don't have syncsafe frame
sizes in the frame header, so the unsynchronisation is applied to
the whole frame data including all the frame headers. v2.4 frames
have sync-safe sizes, however, so the unsynchronisation only needs
to be applied to the actual frame data, and it seems that's what's
being done as well. So we need to undo the unsynchronisation on a
per-frame basis for v2.4 tags for things to work properly.
Fixes extraction of coverart/images from APIC frames in ID3 v2.4
tags (#588148).
Add unit test for this as well.
|
|
|
|
| |
Fixes bug #590970.
|
|
|
|
|
|
| |
Set the default slave method to the much better skew algorithm. This is the
default in the new base class but we override this here as well for the
upcomming release.
|
| |
|
| |
|
|
|
|
|
|
| |
parse complete (bytestream) buffer for SPS/PPS before pushing NALs.
Fixes #564501.
|
| |
|
| |
|
|
|
|
| |
They require special build flags and are not useful in general.
|
|
|
|
| |
It seems to cause strange occasional high latencies (almost 200ms) when dequeuing buffers from _buffer_alloc(). It is simpler and seems to work much better to dqbuf from the same thread that is queuing the next buffer.
|
|
|
|
|
|
|
|
|
|
|
| |
This also does the following changes:
(1) pull the bufferpool code out into gstv4l2bufferpool.c, and make a
bit more generic so it can be used both for v4l2src and v4l2sink
(2) move some of the device probing/configuration/caps stuff into
gstv4l2object.c so it does not have to be duplicated between
v4l2src and v4l2sink
Fixes bug #590280.
|
| |
|
| |
|
|
|
|
|
|
| |
Whenever we see a gap, we flush the temporary packets (but not the adapter). If we
had some data temporarily stored it will be outputted (the sound will sound a bit
garbled... but that's how it sounds on MacOSX :)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Reverse-engineered by comparing:
* A rtp hinted file provided by DarwinStreamingServer
* The output procued by DSS for that same file
Also used various streaming sources available on the internet to fine-tune
the code.
The header/codec_data extraction methods are from FFMpeg (LGPL).
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Request pads are removed by the element instance in PAUSED->READY
so we need to re-request pads for every run and link them again.
Last fix for bug #590447.
|
|
|
|
| |
Partially fixes bug #590447.
|
|
|
|
|
|
|
| |
Reset the have_video/have_audio flags and make sure to
properly release the request pads.
Partially fixes bug #590447.
|
| |
|
|
|
|
|
|
|
|
| |
Use some of the SDP attributes when they are present to specify the output
dimension and framerate. This allows us to receive jpeg frames larger than
2040 width/height.
Fixes #564437
|
| |
|
|
|
|
|
|
|
| |
Put the SDP attributes on the caps too so that they can be used by
depayloaders.
See #564437
|
|
|
|
|
|
| |
When creating a new probe, pass the server instead of the device string.
fixes #590401
|
|
|
|
| |
Someone might compile this code with -DG_DISABLE_ASSERT some day.
|
|
|
|
|
|
| |
Otherwise that code will just be expanded to nothing when compiled
-DG_DISABLE_ASSERT (PS: why is mainloop_start() called in the init
function and not when changing state to READY?)
|
|
|
|
|
|
|
|
|
|
| |
For some reason flac doesn't call our metadata callback when we operate
in push mode with unframed input, but that's where we set up the
newsegment event (since that's where we'd get the duration from the
stream info header), so we didn't send a newsegment event at all in this
case. Hack around this by storing a generic newsegment event for now
which will be used if we don't replace it with a better one that
includes the duration.
|
|
|
|
|
| |
Remove some callback indirections which are no longer needed because
there's only one decoder object type now. Also remove unused variable.
|
|
|
|
|
|
| |
gst_adapter_peek() will merge buffers as needed, which we can avoid
here since we're doing a memcpy anyway and then flush the copied
data from the adapter right away.
|
| |
|
|
|
|
| |
Basic unit test for flvmux. Fails miserably, hence disabled for now.
|
|
|
|
|
| |
In particular, test re-use of flvdemux in both pull and push mode
(see #583030).
|
|
|
|
|
|
|
|
|
| |
sizeof("foo") includes the string's NUL-terminator in the size returned,
but we're writing strings here with an explicit size at the beginning
and no NUL-terminator. In most cases using sizeof("foo") as length in
memcpy is not harmful, but it is where the string goes right at the
end of our buffer to write, since we don't allocate space for that
NUL terminator.
|
|
|
|
|
| |
This is due to a quality API change in libsoup 2.7. SOUP_METHOD_* are now
integers and not strings... they could have changed the names.
|
|
|
|
|
| |
libjpeg headers pull some windows system inlcudes (on windows) that contain a
define for DEFAULT_QUALITY.
|
| |
|
|
|
|
| |
Fixes bug #578052 again.
|
|
|
|
| |
Based on documentation found on http://wiki.multimedia.cx/
|
|
|
|
|
|
|
| |
configured_sink/source_usec in the timing_info is only since 0.9.11 so
conditionally compile this information.
fixes #590038
|
|
|
|
|
|
|
|
|
| |
Keep track of the paused state of the source and leave the read function when
paused.
don't wait for a latency update when the delay is not yet known but simply
return 0 instead of blocking.
Keep track of the corked state of the stream.
Fix the state changes.
|
| |
|
|
|
|
|
|
| |
Add some more debug info
Avoid some type casts
Report the real latency to the application.
|
|
|
|
|
|
| |
Otherwise, any non 0xff byte at end of data would be mistaken for
a tag byte, and in case of a frame_len 0 tag subsequently lead to an
infinite loop.
|
| |
|
| |
|