| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
When AVFoundation indicates a supported frame rate range, add it to
the caps. This is important for devices such as the iPhone 6, which
indicate a single AVFrameRateRange of 2fps - 60fps.
https://bugzilla.gnome.org/show_bug.cgi?id=751048
|
|
|
|
| |
gst_query_set_caps_result() does not take ownership of the caps.
|
|
|
|
|
|
|
|
| |
There is a missing break statement in switch,
which will result in executing default case as well
resulting in wrong behavior
https://bugzilla.gnome.org/show_bug.cgi?id=751305
|
|
|
|
|
|
|
|
|
|
|
| |
In JNI_OnLoad() we will already get the Java VM passed and could
just directly use that. gstreamer_android-1.0.c will now provide
this to us.
Reason for this is that apparently not all Android system are
providing the JNI functions to get the currently running Java VMs, so
we would fail to get. With this we will always be able to get the Java
VM on such systems.
|
|
|
|
|
| |
Hardware codecs don't make sense for audio and are generally less reliable on
Android than the software codecs.
|
|
|
|
|
| |
Someone else might have detached it before us, so make this just normal debug
output instead of a GST_ERROR()
|
|
|
|
|
|
|
|
|
| |
We only need that if no Java VM is running yet, and all usual cases,
i.e. when calling GStreamer from an actual Android app, there will already
be a Java VM we can just use.
It seems like some phones come without that symbol, let's hope they come
with the other symbol but for now don't make a missing JNI_CreateJavaVM fatal.
|
| |
|
| |
|
|
|
|
|
|
| |
Headers were broken on older Android versions, apparently.
https://bugzilla.gnome.org/show_bug.cgi?id=744459
|
| |
|
|
|
|
|
|
| |
This allows us to signal what kind of audio we are expecting to record,
which should tell the system to apply filters (such as echo
cancellation, noise suppression, etc.) if required.
|
|
|
|
|
| |
This was fixed by https://bugzilla.gnome.org/show_bug.cgi?id=749258
in basesink, and is not necessary to duplicate here anymore.
|
|
|
|
|
|
| |
mode's framerate
We only really care about the timestamps for the sink.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Even when we fail to encode frame, we should still enqueue it so
it could be passed into handle_frame (with output_buffer == NULL).
Otherwise, we risk GstVideoEncoder's queue of frames growing unbounded.
Note: We're slightly changing the renegotiation code to accommodate for
frames without output buffers, but this commit takes no ownership over
the way negotiation is being done.
https://bugzilla.gnome.org/show_bug.cgi?id=750669
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=749856
|
|
|
|
|
|
|
|
|
| |
VTCompressionSessionEncodeFrame retains the CVPixelBuffer during
encoding, and will release it as soon as it can (e.g. before it even
calls our callback). This means we can safely release input buffer
at this point, possibly allowing the system to reuse it sooner.
https://bugzilla.gnome.org/show_bug.cgi?id=750671
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=750668
|
|
|
|
|
|
|
| |
VT compression callback gets a CMSampleBuffer per frame, so vtenc_h264
should set 'alignment=au' in sink caps to indicate this.
https://bugzilla.gnome.org/show_bug.cgi?id=750635
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=750601
|
|
|
|
|
|
| |
CMSampleBuffers were retained -> huge memory leak.
https://bugzilla.gnome.org/show_bug.cgi?id=750638
|
| |
|
|
|
|
|
|
|
|
|
| |
Copying arbitrary metas is going to cause problems and this should really be
handled by the base class. It overrides most other things already anyway,
including timestamp and duration. Those are just set here now so we can
insert the frame sorted into the queue.
https://bugzilla.gnome.org/show_bug.cgi?id=748922
|
|
|
|
| |
Seems to have been copy pasted around a few places
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=750381
|
|
|
|
| |
actually working
|
|
|
|
|
|
|
|
|
|
| |
OMX.Exynos. codecs are existing on some devices like the
Galaxy S5 mini, and cause random crashes (of the device,
not the app!) and generally misbehave. That specific device
has other codecs that work with a different name, but let's
just give them marginal rank in case there are devices that
have no other codecs and these are actually the only working
ones
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On some devices there are codecs that don't start with OMX., while
there are also some that do. And on some of these devices the ones
that don't start with OMX. just crash during initialization while
the others work. To make things even more complicated other devices
have codecs with the same name that work and no alternatives.
So just give a lower rank to these non-OMX codecs and hope that
there's an alternative with a higher rank.
Also stagefright gives codecs starting with OMX. a higher rank too and
considers other codecs that don't start with OMX. as software codecs.
|
|
|
|
|
|
|
|
| |
This decoder does not work if width and height field are not set
in the sinkpad caps. Let's make this explicit by adding them to
the template caps.
https://bugzilla.gnome.org/show_bug.cgi?id=749655
|
|
|
|
|
|
|
|
|
|
|
| |
It is incorrect to modify the frame properties after passing them, since
VTCompressionSessionEncodeFrame takes reference and we have no control
over when it's being used.
In fact, the code can be simplified. We just preallocate the frame
properties for keyframe requests, and pass NULL otherwise.
https://bugzilla.gnome.org/show_bug.cgi?id=748467
|
|
|
|
|
| |
Also properly set limit/position on byte buffer, some codecs prefer to have
correct values there.
|
| |
|
|
|
|
|
| |
Otherwise the base class will be confused.
See https://bugzilla.gnome.org/show_bug.cgi?id=685730
|
|
|
|
|
|
|
|
| |
Unless stopRequest is set, we should unlock conditionally -- otherwise,
the 'create:' method can wake up to an empty buffer queue
and pull a nil buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=748054
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=749218
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=749218
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=749218
|
|
|
|
|
|
| |
implement ::negotiate()
Add FIXME comment related to that.
|
|
|
|
|
|
| |
Reference: http://developer.android.com/reference/android/graphics/ImageFormat.html#YV12
https://bugzilla.gnome.org/show_bug.cgi?id=747126
|
|
|
|
|
|
|
|
|
| |
constant
This color format is the same as QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m
but stores two images one after the other in a top-bottom layout.
https://bugzilla.gnome.org/show_bug.cgi?id=747126
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=748867
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=747126
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=747126
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gst_ks_device_provider_probe() is a no-braier, just runs ks_enumerate_devices()
and reports the results.
Monitoring is a bit more tricky. We have to create a dummy message-processing
window and register device change notifications for it.
As kernel streaming can (and should) be used for audio capture and audio
playback, this change also has certain placeholders for such.
https://bugzilla.gnome.org/show_bug.cgi?id=747757
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=748054
|
|
|
|
| |
This is not needed any longer.
|
|
|
|
|
|
|
| |
This commit fixes a simple build error by clang with
by clang with [-Werror,-Wtautological-pointer-compare] options.
https://bugzilla.gnome.org/show_bug.cgi?id=748110
|
|
|
|
|
|
| |
The autodetection mode was broken because a race condition in the input mode
setting. The mode could be reverted back when it was replaced in
the streaming thread by the old mode in the middle of mode changed callback.
|