| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
This is fine to hard-code. Section 9.1.8 of the OpenSL ES 1.1
specification, it is expected that multi-channel audio is always
interleaved.
|
|
|
|
|
|
| |
Don't set offset end to random values off the stack.
https://bugzilla.gnome.org/show_bug.cgi?id=747352
|
|
|
|
|
|
|
|
| |
The shm-area-property tells the name of the shm area used by the element. This
is useful for cases where shmsink is not able to clean up (calling
shm_unlink()), e.g. if it is in a sandbox.
https://bugzilla.gnome.org/show_bug.cgi?id=675134
|
|
|
|
|
|
|
| |
Using the MixerAPI as IDirectSoundCaptureBuffer doesn't implement volume
control.
https://bugzilla.gnome.org/show_bug.cgi?id=744383
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
There are other elements for this now.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
while having the default vtdec at secondary rank. This allows decodebin/playbin
to prefer the hardware based decoders, and if that fails to initialize because
hardware resources are busy to fall back to e.g. the libav based h264 decoder
instead of the software based vtdec (which is slower), and only fall back to
the software based vtdec if there is no higher ranked decoder available.
|
|
|
|
|
|
| |
via the "device-index" option
https://bugzilla.gnome.org/show_bug.cgi?id=745161
|
|
|
|
|
|
| |
time and numbers of samples
This should prevent any accumulating rounding errors with the duration.
|
| |
|
|
|
|
|
| |
We already have the real capture time, not the time when we received
the end of the packet.
|
|
|
|
|
|
|
|
|
| |
frames
Using requestMediaDataWhenReadyOnQueue the layer will execute a block
when it would like more frames. Using this we can provide the current
frame and avoid needlessly filling the layer's buffer queue causing
older frames to be displayed when under resource pressure.
|
|
|
|
|
| |
Otherwise the old calibration will stick around for the next time we use it,
potentially giving us completely wrong times.
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=744386
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=745159
|
|
|
|
| |
Otherwise we send rectangle textures to glimagesink
|
|
|
|
|
|
| |
is lost and we're waiting for reset
https://bugzilla.gnome.org/show_bug.cgi?id=744615
|
|
|
|
|
|
| |
caps changes
https://bugzilla.gnome.org/show_bug.cgi?id=744615
|
|
|
|
|
| |
Renders buffers using the CALayer subclass AVSampleBufferDisplayLayer
which can be placed inside a Core Animation render tree.
|
|
|
|
|
|
|
|
| |
Otherwise we might set bogus values or GST_CLOCK_TIME_NONE.
Also make sure to reset the caps field to NULL after unreffing
the caps to prevent accidential use afterwards, and unref any
old caps before we remember new caps.
|
|
|
|
|
|
|
|
|
| |
when resetting
Otherwise we will still have a reference to the surface left, which would
prevent activating the sink again later. E.g. after we lost the device.
Hopefully fixes https://bugzilla.gnome.org/show_bug.cgi?id=744615
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=744585
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
buffers as external audioringbuffer ones
Otherwise we might end up reading too much from the audioringbuffer, which
would result in reading silence.
|
|
|
|
|
|
|
| |
all cases
Even if both clocks have the same rate, we need to apply this diff. Only when
it's the same clock we don't, as it's our clock then.
|
|
|
|
|
|
|
|
|
| |
start to play
Add the diff between the external time when we went to playing and
the external time when the pipeline went to playing. Otherwise we
will always start outputting from 0 instead of the current running
time.
|
| |
|
|
|
|
|
|
|
| |
starting the device
Otherwise we might stay at 0.0s for too long because we will take the first
timestamp we ever see as 0.0... which will be after we started the device.
|
|
|
|
|
|
|
|
|
|
| |
gstdecklink.cpp: In member function 'virtual HRESULT GStreamerDecklinkInputCallback::VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*)':
gstdecklink.cpp:498:22: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (capture_time > m_input->clock_start_time)
^
gstdecklink.cpp:503:22: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (capture_time > m_input->clock_offset)
^
|
|
|
|
| |
not the decklink clock
|
|
|
|
| |
a videosrc at this point
|
|
|
|
|
| |
The audio source only works together with the video source, and the video
source is already providing a clock.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The driver has an internal buffer of unspecified and unconfigurable size, and
it will pull data from our ring buffer as fast as it can until that is full.
Unfortunately that means that we pull silence from the ringbuffer unless its
size is by conincidence larger than the driver's internal ringbuffer.
The good news is that it's not required to completely fill the buffer for
proper playback. So we now throttle reading from the ringbuffer whenever
the driver has buffered more than half of our ringbuffer size by waiting
on the clock for the amount of time until it has buffered less than that
again.
|
|
|
|
|
|
| |
The ringbuffer's acquire() is too early, and ringbuffer's start() will only be
called after the clock has advanced a bit... which it won't unless we start
scheduled playback.
|
|
|
|
|
| |
Move GLES calls to the context thread. Fix
CVOpenGLESTextureCacheCreateTextureFromImage usage on iOS.
|
|
|
|
|
|
|
| |
Not from the decklink clock. Both will return exactly the same time once the
decklink clock got slaved to the pipeline clock and received the first
observation, but until then it will return bogus values. But as both return
exactly the same values, we can as well use the pipeline clock directly.
|
|
|
|
|
|
|
|
|
|
|
| |
There is no reason to pre-roll more buffers here as we have our own ringbuffer
with more segments around it, and we can immediately provide more buffers to
OpenSL ES when it requests that from the callback.
Pre-rolling a single buffer before starting is necessary though, as otherwise
we will only output silence.
Lowers latency a bit, depending on latency-time and buffer-time settings.
|
|
|
|
|
|
|
|
|
| |
4 is the "typical" number of buffers defined by Android's OpenSL ES
implementation, and its code is optimized for this. Also because we
have our own ringbuffer around this, we will always have enough
buffering on our side already.
Allows for more efficient processing.
|
| |
|
|
|
|
|
| |
There is more but it's from ks.h GUID initializer, which is shipped
this way with mingw.
|