Vineeth TM
dd3f3142bc
uvch264_src: add missing break in caps query handler
...
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
2015-06-22 09:20:18 +01:00
Sebastian Dröge
6b2800e324
androidmedia: Allow the application to provide the Java VM
...
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.
2015-06-18 14:38:04 +02:00
Sebastian Dröge
c51b012991
androidmedia: Prefer software codecs over hardware codecs for audio
...
Hardware codecs don't make sense for audio and are generally less reliable on
Android than the software codecs.
2015-06-18 14:31:39 +02:00
Sebastian Dröge
26396bfac2
androidmedia: Failing to detach a thread is not that much of a problem
...
Someone else might have detached it before us, so make this just normal debug
output instead of a GST_ERROR()
2015-06-18 14:29:33 +02:00
Sebastian Dröge
ade625111e
androidmedia: Don't fail if JNI_CreateJavaVM can't be found
...
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.
2015-06-18 10:45:24 +02:00
Sebastian Dröge
6be20ffb79
androidmedia: Move variables into the scope where they are needed
2015-06-15 14:22:00 +02:00
Sebastian Dröge
90c4a6ecd0
androidmedia: Don't query supported color formats for non-video codecs
2015-06-15 12:20:24 +02:00
Arun Raghavan
c7eb883e22
opensles: Fix build with Android API level < 14
...
Headers were broken on older Android versions, apparently.
https://bugzilla.gnome.org/show_bug.cgi?id=744459
2015-06-13 16:03:58 +05:30
Arun Raghavan
e3ed00e4eb
openslessink: Allow setting the stream type via a property
2015-06-13 16:03:00 +05:30
Arun Raghavan
6b728f184f
openslessrc: Implement recording presets
...
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.
2015-06-13 16:03:00 +05:30
Sebastian Dröge
e3aaff400a
decklinkvideosink: Remove late frame-dropping workaround for basesink bug
...
This was fixed by https://bugzilla.gnome.org/show_bug.cgi?id=749258
in basesink, and is not necessary to duplicate here anymore.
2015-06-13 11:41:33 +02:00
Sebastian Dröge
62f25894a5
decklinkvideosink: Don't require the same framerate in the input as the mode's framerate
...
We only really care about the timestamps for the sink.
2015-06-12 22:35:03 +02:00
Ilya Konstantinov
29c79d7595
vtenc: always enqueue frames, even on error
...
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
2015-06-10 22:23:06 +02:00
Fabio Cetrini
79f57e62dc
d3dvideosink: Avoid frame rendering while the window is completely hidden
...
https://bugzilla.gnome.org/show_bug.cgi?id=749856
2015-06-10 15:03:31 +02:00
Ilya Konstantinov
6101fc57b8
vtenc: free input buffer ASAP
...
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
2015-06-10 10:30:23 +02:00
Ilya Konstantinov
f5c29c7379
vtenc: Add missing gst_vtenc_frame_free() in error path
...
https://bugzilla.gnome.org/show_bug.cgi?id=750668
2015-06-10 10:26:28 +02:00
Ilya Konstantinov
5db08a8b89
vtenc: add alignment=au to sink caps
...
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
2015-06-10 10:20:44 +02:00
Chris Clayton
376d831178
uvch264src: fix compiler warnings
...
https://bugzilla.gnome.org/show_bug.cgi?id=750601
2015-06-09 18:30:55 +01:00
Ilya Konstantinov
05cc418ca2
avfassetsrc: fix huge memory leak
...
CMSampleBuffers were retained -> huge memory leak.
https://bugzilla.gnome.org/show_bug.cgi?id=750638
2015-06-09 16:36:41 +02:00
Ilya Konstantinov
faf903720a
vtenc: no need for queue_length with try_pop
2015-06-09 16:20:06 +02:00
Ilya Konstantinov
1f7681dd0a
vtdec: don't copy meta from input to output
...
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
2015-06-09 16:20:06 +02:00
Thiago Santos
045bfa10fe
Fix a common typo: retreive -> retrieve
...
Seems to have been copy pasted around a few places
2015-06-05 09:43:35 -03:00
Tim-Philipp Müller
96d1331679
ksvideosrc: fix logic and timestamp non-muxed streams again
...
https://bugzilla.gnome.org/show_bug.cgi?id=750381
2015-06-04 13:31:56 +01:00
Sebastian Dröge
d221108857
amc: Only lower ranks of OMX.Exynos. audio codecs, the video codecs are actually working
2015-06-01 20:03:22 +02:00
Sebastian Dröge
bf07b52477
amc: Give marginal rank to codecs that start with OMX.Exynos.
...
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
2015-06-01 19:41:21 +02:00
Sebastian Dröge
2e0395aa59
androidmedia: Give lower ranks to codecs not starting with OMX.
...
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.
2015-06-01 19:41:21 +02:00
Nicolas Dufresne
4cca6efda8
vtdec: Require width and height field for H264
...
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
2015-06-01 11:23:41 -04:00
Ilya Konstantinov
94e7ed1323
vtenc: fix keyframe request race condition
...
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
2015-06-01 13:32:03 +02:00
Sebastian Dröge
a6fb482247
androidmedia: Conditionally use get_{input,output}_buffer() Android 21 APIs
...
Also properly set limit/position on byte buffer, some codecs prefer to have
correct values there.
2015-05-31 21:27:27 +02:00
Jan Schmidt
e7381ed17a
wasapi: Fix flags order for uninstalled build
2015-05-21 13:42:29 +10:00
Sebastian Dröge
8bacecfb08
amcaudiodec: Add an output adapter for chunking the output into codec frames
...
Otherwise the base class will be confused.
See https://bugzilla.gnome.org/show_bug.cgi?id=685730
2015-05-19 19:12:41 +03:00
Ilya Konstantinov
c948484c7f
avfvideosrc: fix unconditional buffer queue unlock
...
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
2015-05-11 21:11:30 +10:00
Heinrich Fink
6007829e77
decklink: Rename mode 2048p to 1556p
...
https://bugzilla.gnome.org/show_bug.cgi?id=749218
2015-05-11 13:20:11 +03:00
Heinrich Fink
1dabd7c5b8
decklink: Use correct frame rate for mode 2160p50
...
https://bugzilla.gnome.org/show_bug.cgi?id=749218
2015-05-11 13:14:39 +03:00
Heinrich Fink
e6d82dec32
decklink: Rename mode 3184p to 2160p
...
https://bugzilla.gnome.org/show_bug.cgi?id=749218
2015-05-11 13:14:15 +03:00
Sebastian Dröge
7020154f1c
vtdec: We shouldn't manually check reconfigure flag on pads but instead implement ::negotiate()
...
Add FIXME comment related to that.
2015-05-08 15:08:18 +02:00
Matthieu Bouron
3c77fbda87
androidmedia: Add suport for COLOR_FormatYV12
...
Reference: http://developer.android.com/reference/android/graphics/ImageFormat.html#YV12
https://bugzilla.gnome.org/show_bug.cgi?id=747126
2015-05-04 12:45:12 +02:00
Matthieu Bouron
bd21df1056
androidmedia: Declare QOMX_COLOR_FORMATYVU420PackedSemiPlanar32mMultiView 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
2015-05-04 12:44:56 +02:00
Matthieu Bouron
21ff3ae0b0
androidmedia: Fix slice-height for Tegra 3 devices
...
https://bugzilla.gnome.org/show_bug.cgi?id=748867
2015-05-04 10:39:38 +02:00
Edward Hervey
8d41c3e393
androidmedia: Add support for COLOR_FormatYUV420Flexible
...
https://bugzilla.gnome.org/show_bug.cgi?id=747126
2015-05-04 09:34:29 +02:00
Edward Hervey
0654442c8f
androidmedia: Add suport for Intel color formats
...
https://bugzilla.gnome.org/show_bug.cgi?id=747126
2015-05-04 09:34:15 +02:00
Andoni Morales Alastruey
1991b5bb6f
ksvideosrc: don't timestamp buffers for muxed streams
2015-04-29 21:41:55 +02:00
Andoni Morales Alastruey
20e5a4a498
ksvideosrc: fix header size for muxed streams
2015-04-29 21:41:48 +02:00
Руслан Ижбулатов
a31855d618
GstDeviceProvider implementation for WIN Kernel Streaming plugin
...
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
2015-04-28 20:24:26 -04:00
Ilya Konstantinov
528871f571
avfvideosrc: drop frames we get before we have a clock
...
https://bugzilla.gnome.org/show_bug.cgi?id=748054
2015-04-26 20:37:11 +02:00
Tim-Philipp Müller
699452ef31
Remove obsolete Android build cruft
...
This is not needed any longer.
2015-04-26 18:59:32 +01:00
Yujin Lee
a8ea7a9cfb
vtdec: fix build error with clang
...
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
2015-04-26 19:23:06 +02:00
Josep Torra
cf66541850
decklinkvideosrc: fix mode autodetection
...
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.
2015-04-22 17:20:22 +02:00
Josep Torra
6b70b848ee
decklink: do not repeat first video format in caps template
...
The first entry in the modes array is used as default mode for autodetection.
There's no need to copy it into the caps template.
2015-04-22 17:20:21 +02:00
Edward Hervey
af49c109e4
shmpipe: Ensure string received from recv() is NULL-terminated
...
We will be doing string operations on it later.
CID #1292830
2015-04-20 14:21:09 +02:00
Alessandro Decina
edf9035d02
applemedia: avoid implicit color conversions
...
Rework the GL texture code a little to avoid implicit color conversion inside
AVF/VT on both iOS and OSX.
2015-04-20 17:09:58 +10:00
Ilya Konstantinov
c98eb6f2f5
corevideotexturecache: free texture cache on iOS
...
https://bugzilla.gnome.org/show_bug.cgi?id=748122
2015-04-19 14:48:43 +02:00
Ilya Konstantinov
472d1959a2
avfvideosrc: check for failure to create buffer
...
gst_core_media_buffer_new and gst_core_video_texture_cache_get_gl_buffer
can fail for various platform reasons.
https://bugzilla.gnome.org/show_bug.cgi?id=748122
2015-04-19 14:48:11 +02:00
Yujin Lee
4a88951c52
avfvideosrc: fix build failure with clang
...
Use fabs for floating point input.
https://bugzilla.gnome.org/show_bug.cgi?id=748128
2015-04-19 12:54:32 +01:00
Sebastian Dröge
774866ad62
androidmedia: Handle queue/release errors non-fatal
...
They can happen sometimes as a transient problem, e.g. if there
is a problem in the stream. Only handle them as fatal if many of
them happen in a row.
2015-04-17 20:11:46 +02:00
Ilya Konstantinov
a02a948a5d
avfvideosrc: get connection and input clock early
2015-04-18 00:33:42 +10:00
Ilya Konstantinov
d1120c591c
avfvideosrc: remove unused variables
...
Complement commit 5496fd3e75
by removing
the involved variables.
2015-04-15 10:16:17 +10:00
Alessandro Decina
a10232f7da
applemedia: vtdec: fix GL negotiation
2015-04-14 20:33:25 +10:00
Alessandro Decina
3e0391a1f1
avfvideosrc: log timestamps
2015-04-14 18:05:58 +10:00
Ilya Konstantinov
5bc17dac29
avfvideosrc: subtract time spent in AVF queues
...
The time spent in AVF queues was being incorrectly added to running time
rather than subtracted.
2015-04-14 18:05:58 +10:00
Ilya Konstantinov
1b27538648
avfvideosrc: fix GL texture negotiation
...
GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE should no longer be used.
Instead, just get the GL context.
https://bugzilla.gnome.org/show_bug.cgi?id=747352
2015-04-14 18:05:57 +10:00
Sebastian Dröge
91853015b7
winks: Reset DTS to GST_CLOCK_TIME_NONE
...
Otherwise we might get a previous DTS set from a recycled buffer that we get
back from a buffer pool, which then confuses synchronization.
https://bugzilla.gnome.org/show_bug.cgi?id=747722
2015-04-12 13:01:56 +02:00
Sebastian Dröge
265538ac6e
amc: Use new JNI utils almost everywhere
2015-04-11 19:44:34 +02:00
Sebastian Dröge
7fb0fafed2
amc: Allow creating global and local references of objects
2015-04-11 19:37:34 +02:00
Sebastian Dröge
6c7b64f90c
amc: Make GError argument order more consistent
2015-04-11 19:37:34 +02:00
Sebastian Dröge
448867f0aa
amc: Add helper function for getting a direct buffer array
2015-04-11 19:37:20 +02:00
Sebastian Dröge
0dbf5d322f
amc: Java longs are gint64s
2015-04-11 19:37:20 +02:00
Sebastian Dröge
0914ee4a07
amc: Improve JNI utilities and add some missing ones
...
We now fill GErrors for everything that could throw an exception, and method
calls now always return a gboolean and their value in an out-parameter to
distinguish failures from other values.
2015-04-11 19:37:20 +02:00
Tim-Philipp Müller
ea58a2138d
winks: fix debug message parameter format
...
The first part of the GUID structure is a DWORD
which is defined as an unsigned long, so we need
to either cast or use %08lx.
2015-04-11 12:12:57 +01:00
Andoni Morales Alastruey
83a54e07fd
ksvideosrc: fix support for DV devices
2015-04-08 18:54:52 +02:00
Andoni Morales Alastruey
7bc0fa5d70
ksvideosrc: only list capture devices
2015-04-08 18:45:08 +02:00
Arun Raghavan
b40adec9c1
opensles: Explicitly specify layout=interleaved in caps
...
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.
2015-04-08 15:38:17 +05:30
Ilya Konstantinov
4fd0f7277a
avfvideosrc: fix setting of buffer offset end
...
Don't set offset end to random values off the stack.
https://bugzilla.gnome.org/show_bug.cgi?id=747352
2015-04-07 12:57:44 +01:00
Guillaume Emont
48880ea6c7
shmsink: add an shm-area-name property
...
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
2015-04-02 18:11:37 -04:00
Victor Toso
1b564bfb8b
directsoundsrc: Implement volume and mute
...
Using the MixerAPI as IDirectSoundCaptureBuffer doesn't implement volume
control.
https://bugzilla.gnome.org/show_bug.cgi?id=744383
2015-03-31 10:53:55 +01:00
Sebastian Dröge
35ef602b7d
androidmedia: Add helpers for calling static methods
2015-03-15 16:59:25 +00:00
Sebastian Dröge
1580336152
androidmedia: Fix indention
2015-03-15 16:41:12 +00:00
Matthieu Bouron
66f315d6a6
androidmedia: Add more JNI helper functions
2015-03-15 16:28:03 +00:00
Matthieu Bouron
be2378a071
androidmedia: Split jni code to gstjniutils.c
2015-03-15 16:28:03 +00:00
Tim-Philipp Müller
bcde1a015c
Remove unported and useless osxvideosrc element
...
There are other elements for this now.
2015-03-14 14:47:25 +00:00
ijsf
f62dda74cc
Restricted activeVideoMaxFrameDuration to fix frame rate
2015-03-13 14:43:14 +00:00
Jan Schmidt
f150cf2d2e
Remove a bunch of silly ';;' typos at the end of lines
2015-03-12 01:33:03 +11:00
Edward Hervey
4b5d3a97ba
androidmedia: Remove unused label/variable
2015-03-11 10:17:53 +01:00
Sebastian Dröge
160df421ea
vtdec: Register a hardware-only vtdec_hw on OSX and give it a higher rank
...
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.
2015-03-07 10:31:26 +01:00
Florian Zwoch
a8ae57480c
avfvideosrc: allow "capture-screen" mode to select which screen to capture via the "device-index" option
...
https://bugzilla.gnome.org/show_bug.cgi?id=745161
2015-03-06 10:37:37 +01:00
Sebastian Dröge
254337365a
decklinkaudiosrc: Calculate the duration more accurately from the capture time and numbers of samples
...
This should prevent any accumulating rounding errors with the duration.
2015-03-04 16:13:30 +01:00
Sebastian Dröge
912e58c64c
decklinkaudiosrc: Fix the timestamp and offset calculations even more
2015-03-04 16:07:10 +01:00
Sebastian Dröge
1f9d37c924
decklinkaudiosrc: Don't subtract the duration from the capture time
...
We already have the real capture time, not the time when we received
the end of the packet.
2015-03-04 16:04:18 +01:00
Matthew Waters
0593480381
applemedia/avsamplesink: utilise a pull based approach of displaying video 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.
2015-03-04 14:48:03 +11:00
Sebastian Dröge
4521524de3
decklink: Reset the clock calibration when unsetting the master clock
...
Otherwise the old calibration will stick around for the next time we use it,
potentially giving us completely wrong times.
2015-03-02 16:45:45 +01:00
Sebastian Dröge
8e362aab14
decklink{audio,video}src: Add some more debug output
2015-03-02 13:57:24 +01:00
DanielD10
034ed48023
decklink: Incorrect frame rate for interlaced modes
...
https://bugzilla.gnome.org/show_bug.cgi?id=744386
2015-03-02 11:59:31 +01:00
Sebastian Dröge
72b440cc89
decklinkvideosrc: Fix scaling with rate of internal/external clock
2015-02-27 11:08:14 +02:00
Roman Nowicki
29098129be
d3dvideosink: release existing D3D swap chain on init
...
https://bugzilla.gnome.org/show_bug.cgi?id=745159
2015-02-25 16:19:57 +02:00
Matthew Waters
c873c57430
vtdec: only attempt use of the texture cache with GLMemory caps features
...
Otherwise we send rectangle textures to glimagesink
2015-02-25 00:03:34 +11:00
Sebastian Dröge
e36c27cd46
d3dvideosink: Don't initialize the render window swap chain while the device is lost and we're waiting for reset
...
https://bugzilla.gnome.org/show_bug.cgi?id=744615
2015-02-24 11:19:48 +02:00
Sebastian Dröge
f53bc227a8
d3dvideosink: Deactivate the fallback buffer pool when replacing it during caps changes
...
https://bugzilla.gnome.org/show_bug.cgi?id=744615
2015-02-24 11:19:48 +02:00
Matthew Waters
e505f6257c
applemedia: new AVSampleBufferLayerSink
...
Renders buffers using the CALayer subclass AVSampleBufferDisplayLayer
which can be placed inside a Core Animation render tree.
2015-02-24 19:12:10 +11:00
Sebastian Dröge
84ab11afdb
avfvideosrc: Only set latency if we already know our caps
...
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.
2015-02-19 01:03:35 +02:00
Sebastian Dröge
d1d31dae6d
d3dvideosink: Deactivate the fallback pool and unref the fallback buffer 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
2015-02-18 12:45:22 +02:00
Sebastian Dröge
0c9f35653f
vtenc: Check if VTSessionCopyProperty() succeeds before using the result
...
https://bugzilla.gnome.org/show_bug.cgi?id=744585
2015-02-16 12:35:09 +02:00
Arun Raghavan
df43022899
opensles: Make debug category naming a bit more consistent
2015-02-13 15:05:07 +05:30
Alessandro Decina
6e325be516
applemedia: avfvideosrc: fix crash when non-GL memory is used
2015-02-13 19:12:54 +11:00
Sebastian Dröge
31f59cb344
avfvideosrc: Only use the duration of the sample if it is valid
2015-02-12 11:12:09 +02:00
Sebastian Dröge
4ccd425772
openslesringbuffer: Only allocate at most half the number of internal buffers as external audioringbuffer ones
...
Otherwise we might end up reading too much from the audioringbuffer, which
would result in reading silence.
2015-02-10 16:18:34 +01:00
Sebastian Dröge
9ed4054a94
decklinkvideosrc: Apply the diff between element and pipeline "base" time in 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.
2015-02-10 16:01:19 +01:00
Sebastian Dröge
f83ac624e3
decklinkvideosrc: Add the diff between the pipeline base time and when we 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.
2015-02-10 15:30:44 +01:00
Sebastian Dröge
d4575e759b
decklinkvideosink: Actually include the change mentioned in the last commit
2015-02-10 14:53:55 +01:00
Sebastian Dröge
e8167dd118
decklinkvideo{src,sink}: Sample the internal clock immediately after 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.
2015-02-10 14:48:09 +01:00
Sebastian Dröge
b739cf8b7f
decklink: Fix compiler warning with gcc
...
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)
^
2015-02-09 21:04:17 +01:00
Sebastian Dröge
f0e85023c2
decklink{audio,video}src: Implement clock slaving if the pipeline clock is not the decklink clock
2015-02-09 17:17:37 +01:00
Sebastian Dröge
408f0870a6
decklinkaudio{src,sink}: Only start streams / scheduled playback if there is a videosrc at this point
2015-02-09 17:15:21 +01:00
Sebastian Dröge
349113d15a
decklinkaudiosrc: Don't provide a clock
...
The audio source only works together with the video source, and the video
source is already providing a clock.
2015-02-09 17:04:27 +01:00
Sebastian Dröge
4de7fdfa3a
decklinkaudiosink: Throttle reading from the ringbuffer
...
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.
2015-02-09 16:22:39 +01:00
Sebastian Dröge
a6bcd09b6c
decklinkaudiosink: Start scheduled playback when going to PLAYING
...
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.
2015-02-09 16:22:39 +01:00
Alessandro Decina
052e4804eb
vtdec: fix texture sharing on iOS
...
Move GLES calls to the context thread. Fix
CVOpenGLESTextureCacheCreateTextureFromImage usage on iOS.
2015-02-09 21:18:24 +11:00
Sebastian Dröge
22b0a4dad5
decklink{audio,video}src: Take the capture times from the pipeline clock
...
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.
2015-02-08 21:56:04 +01:00
Sebastian Dröge
83e5fe2f70
openslesringbuffer: Only pre-roll a single buffer
...
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.
2015-02-05 12:28:22 +01:00
Sebastian Dröge
141fb455e8
openslesringbuffer: Allocate at most 4 internal buffers
...
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.
2015-02-05 12:28:13 +01:00
Sebastian Dröge
616cb1bdc6
openslessink/src: Lower default buffer time to 200ms like alsasink
2015-02-05 12:21:55 +01:00
Nicolas Dufresne
5aa292b588
ksvideosrc: Fix missing brace warning
...
There is more but it's from ks.h GUID initializer, which is shipped
this way with mingw.
2015-02-03 18:16:51 -05:00
Nicolas Dufresne
bd5e9a5442
ksvideosrc: Fix buffer handling
...
The pseudo buffer pool code was using gst_buffer_is_writable()
alone to try and figure-out if cached buffer could be reused.
It needs to check for memory writability too. Also check map
result and fix map flags.
https://bugzilla.gnome.org/show_bug.cgi?id=734264
2015-02-03 18:16:50 -05:00
Sebastian Dröge
d4d02c6f9d
corevideotexturecache: Add some assertions instead of just dereferencing NULL
2015-02-03 17:32:24 +01:00
Sebastian Dröge
b51254395a
corevideotexturecache: Don't unconditionally use the CoreMedia meta on iOS
...
We might instead have a CoreVideo meta.
2015-02-03 17:32:24 +01:00
Sebastian Dröge
dac3e4ca06
vtdec: Don't dereference NULL frames when draining/flushing
2015-02-03 15:38:40 +01:00
Alessandro Decina
f577b52e5d
applemedia: rework GL texture sharing
...
Use YUV instead of RGB textures, then convert using the new apple specific
shader in GstGLColorConvert. Also use GLMemory directly instead of using the
GL upload meta, avoiding an extra texture copy we used to have before.
2015-01-30 00:34:08 +11:00
Alessandro Decina
77d48abfab
applemedia: vtdec: fix CMBlockBufferRef leak
...
Fix huge leak that went unnoticed for too long. Oops.
2015-01-30 00:34:08 +11:00
Alessandro Decina
8734abb1ce
applemedia: don't call CVPixelBufferLockBaseAddress when doing texture sharing
...
When doing texture sharing we don't need to call CVPixelBufferLockBaseAddress to
map the buffer in CPU. This cuts about 10% relative cpu time from a vtdec !
glimagesink pipeline.
2015-01-30 00:34:08 +11:00
Alessandro Decina
e91989136a
applemedia: corevideobuffer: make mapping the CVPixelBuffer in CPU optional
...
Mapping is not necessary and impacts performance when doing texture sharing with
downstream
2015-01-30 00:34:08 +11:00
Sebastian Dröge
e9b49018ed
decklinkvideosink: Always lock the mutex before starting the streams
2015-01-28 17:02:59 +01:00
Sebastian Dröge
837eee7085
decklinkvideosink: Fix deadlock
2015-01-28 16:59:30 +01:00
Sebastian Dröge
4eb5cd9156
decklink{audio,video}sink: Only start scheduled playback once both sources are ready and we are in PLAYING
...
Otherwise we might start the scheduled playback before the audio or video streams are
actually enabled, and then error out later because they are enabled to late.
We enable the streams when getting the caps, which might be *after* we were
set to PLAYING state.
2015-01-28 16:13:16 +01:00
Sebastian Dröge
e2ff5587fe
decklink{audio,video}src: Only start the streams once both sources are ready and we are in PLAYING
...
Otherwise we might start the streams before the audio or video streams are
actually enabled, and then error out later because they are enabled to late.
We enable the streams when getting the caps, which might be *after* we were
set to PLAYING state.
2015-01-28 16:13:16 +01:00
Sebastian Dröge
00176a1ddf
decklink: Make sure our clock never returns NONE, always advances and does not jump when going from PAUSED to PLAYING
...
It basically behaves the same as the audio clocks.
2015-01-28 16:13:16 +01:00
Sebastian Dröge
b3a4772834
decklinkvideosink: Handle the clock returning GST_CLOCK_TIME_NONE properly
2015-01-28 16:13:16 +01:00
Sebastian Dröge
8a5d2c561c
decklinkvideo{sink,src}: Make elements more similar to the audio elements by enabling the video input/output only when getting the actual caps
...
This will also make it easier later to support caps changes and support
selecting the mode based on the caps if that should ever be implemented.
2015-01-28 16:13:16 +01:00
Sebastian Dröge
f3ae93e504
decklinkvideosrc: Properly report caps if mode!=auto and handle caps changes properly for mode=auto
2015-01-28 16:13:16 +01:00
Sebastian Dröge
7fb57938c1
decklinkaudiosrc: Don't release input device twice on errors in set_caps()
2015-01-28 16:13:16 +01:00
Sebastian Dröge
c6d5c4c2e1
decklinkaudiosrc: Release the audio input on errors, not the video input
2015-01-26 15:33:45 +01:00
Tim-Philipp Müller
199ce92474
Remove unported directdraw plugin
...
This API has been deprecated for eternities and microsoft
stopped shipping the headers in 2010 accoding to wikipedia,
so let's just remove it and focus on bringing the plugins
based on the newer APIs up to snuff.
2015-01-24 20:28:16 +00:00
Matthew Waters
c6056b0dd5
applemedia: update for gstgl cocoa -> cgl change
2015-01-23 16:12:24 +11:00
Sebastian Dröge
80e02cbdf9
Constify some static arrays everywhere
2015-01-21 10:18:50 +01:00
Sebastian Dröge
e734c3cf13
decklinkvideosink: Also consider max-lateness property value before dropping late frames
2015-01-15 12:49:46 +01:00
Alessandro Decina
d95a12e185
vtdec: implement the GL texture upload meta
2015-01-15 14:10:43 +11:00
Alessandro Decina
cdfe90aaba
avfvideosrc: implement the GL texture upload meta
2015-01-15 14:10:43 +11:00
Sebastian Dröge
5a12b2670e
decklinkvideosink: Stop scheduled playback shortly in PAUSED->PLAYING if it was running already
...
This fixes handling of flushing seeks, where we will get a PAUSED->PLAYING
state transition after the previous one without actually going to PAUSED
first.
2015-01-14 16:33:53 +01:00
Sebastian Dröge
92fa187d11
decklinkvideosink: Don't schedule too late frames in prepare()
...
Otherwise we will overflow the internal buffer of the hardware
with useless frames and run into an error. This is necessary until
this bug in basesink is fixed:
https://bugzilla.gnome.org/show_bug.cgi?id=742916
2015-01-14 16:02:57 +01:00
Sebastian Dröge
7b979703f8
decklinkvideosink: Keep track of the time when we went to PLAYING for the external clock too
...
Otherwise we're adding an offset of the time the pipeline was in PLAYING
already to the running time when converting it to our internal clock.
2015-01-14 16:00:54 +01:00
Sebastian Dröge
aed66838f3
decklinkvideosink: Enable QoS and set max-lateness to 20ms
2015-01-14 13:33:15 +01:00
Sebastian Dröge
ab9ee34aba
decklink: Use BT2020 colorspace for UltraHD resolutions
2015-01-13 19:56:45 +01:00
Sebastian Dröge
65119ae8b4
decklink: Fix indention once again
2015-01-13 19:56:45 +01:00
Sebastian Dröge
d2e309d341
decklinkvideosink: Get our own "start time" instead of the one of the pipeline
...
decklinkvideosink might be added later to the pipeline, or its state might
be handled separately from the pipeline. In which case the running time when
we (last) went into PLAYING state will be different from the pipeline's.
However we need our own start time to tell the Decklink API, which running
time should be displayed at the moment we go to PLAYING and start scheduled
rendering.
2015-01-13 17:44:17 +01:00
Sebastian Dröge
b79ece392c
decklink: Initialize refcount of our C++ classes in the constructor
...
CID 1262288
CID 1262287
CID 1262289
2015-01-12 15:58:38 +01:00
Sebastian Dröge
4531a341a8
decklinkvideosrc: Post LATENCY message when the mode changes
...
Different modes have different framerates, and thus different latencies. We
might need to reconfigure the latency of the pipeline.
2015-01-08 18:16:12 +01:00
Sebastian Dröge
beede3f27d
decklinkvideosrc: Fix compiler warning
2015-01-08 18:16:12 +01:00
Florian Langlois
9480d91ad4
decklinkvideosrc: Add automatic mode detection
...
https://bugzilla.gnome.org/show_bug.cgi?id=739284
2015-01-08 18:16:12 +01:00
Florian Zwoch
7d318a572c
vtenc: Unlock the stream lock while waiting for pending frames to be completed in finish()
...
We might otherwise deadlock because gst_vtenc_enqueue_buffer() can be
called again and will take the stream lock again from another thread.
https://bugzilla.gnome.org/show_bug.cgi?id=742174
2015-01-08 14:48:20 +01:00
Sebastian Dröge
7e7cabb422
decklink: Add a dummy value to the video connection mapping table for auto
2015-01-08 12:55:51 +01:00
Sebastian Dröge
ed0d4cc653
decklinkaudiosrc: Add property to select the audio input connection
2015-01-08 12:48:22 +01:00
Sebastian Dröge
34de6ad73b
decklink: Add XLR and RCA audio connection enums
2015-01-08 12:23:53 +01:00
Sebastian Dröge
a35d5ae9b9
decklinkvideosrc: Add auto value for the connection property
...
This will use the default/auto connection for video capturing, and can
be set via the Decklink configuration tools.
2015-01-08 12:23:09 +01:00
Sebastian Dröge
478deb4805
decklink: Fix indention once again
2015-01-08 12:13:03 +01:00
Florian Langlois
81c1ef190d
decklink: Add property for configuring the input connection of the video sources
2015-01-08 12:12:50 +01:00
Florian Langlois
e7c6eb6326
decklink: Fix latency values for sources
2015-01-07 16:42:57 +01:00
Sebastian Dröge
196d9c4829
decklink: Add support for 4K / UHD modes
2014-12-29 17:58:37 +01:00
Sebastian Dröge
0122a9d1b6
decklink: Fix indention
2014-12-29 17:58:37 +01:00
Alessandro Decina
5496fd3e75
avfvideosrc: improve timestamp code
...
Use a combination of the running time and CMClockGetTime from AVF to compute
timestamps.
2014-12-27 12:43:45 +11:00
Sebastian Dröge
568da160cb
vtenc: Instead of crashing if no corresponding frame is found, ignore this
...
... and hope that everything will be fine. This shouldn't really happen but
previously happened during shutdown. It should be fixed in videoencoder now,
but better be on the safe side here.
2014-12-22 11:49:08 +01:00
Sebastian Dröge
d632a48d6c
decklink: Fix various compiler warnings with gcc
2014-12-19 15:05:58 +01:00
Sebastian Dröge
5e7782ca39
decklink: Re-add the COM initialization code for Windows
...
Untested, and we will never deinitialize COM again.
2014-12-19 14:50:25 +01:00
Sebastian Dröge
f9d16c5913
decklink: Remove in-same-pipeline detection code for audio/video elements of the same device
...
This causes deadlocks sometimes for some reason.
2014-12-19 14:40:40 +01:00
Sebastian Dröge
9c2e09cf39
decklinkvideosink: Implement clock slaving
2014-12-19 14:40:40 +01:00
Sebastian Dröge
b9e17c5605
decklinkvideosink: Add some more debug output for when frames are scheduled
2014-12-19 14:40:40 +01:00
Sebastian Dröge
ec90bbb6f3
decklink: Add property for configuring the buffer size of the sources
2014-12-19 14:40:40 +01:00
Sebastian Dröge
112fdd266a
decklinkaudiosrc: Implement timestamp jitter and discont handling
2014-12-19 14:40:40 +01:00
Sebastian Dröge
7c0fb92f1b
decklink: Our capture time is the end timestamp of the buffer, subtract the duration
2014-12-19 14:40:40 +01:00
Sebastian Dröge
4ef676f109
decklink: Allow for a maximum of 5 packets to be queued up
...
In case downstream is a bit slow with consuming packets at times.
2014-12-19 14:40:40 +01:00
Sebastian Dröge
aac0027ed2
decklink: Implement latency query in sources and remember selected mode
2014-12-19 14:40:40 +01:00
Sebastian Dröge
23d6eaaa10
decklink: Remove obsolete files
2014-12-19 14:40:39 +01:00
Sebastian Dröge
6d931a0c0e
decklink: Add initial version of audio and video sources
2014-12-19 14:40:39 +01:00
Sebastian Dröge
57d46fe9e1
decklink: Initial version of the audio/video sink rewrite
2014-12-19 14:40:39 +01:00
Alessandro Decina
0156725480
avfvideosrc: improve timestamping and latency reporting
...
Use AVF provided timings to timestamp output buffers. Use the running time at
the time the first buffer is produced to base timestamps on. Report 1-frame
latency based on the negotiated framerate instead of hardcoding 4ms latency.
2014-12-17 12:24:05 +11:00
Raimo Järvi
96ea75d75a
dshowdecwrapper: Remove dependency on ATL
...
This fixes compiling with Visual C++ Express
that doesn't include ATL.
https://bugzilla.gnome.org/show_bug.cgi?id=677223
2014-12-16 23:17:35 +00:00
Matthew Bader
0fc55436b3
dshowsrcwrapper: Added support for image/jpeg and h264
...
https://bugzilla.gnome.org/show_bug.cgi?id=741188
2014-12-16 23:17:25 +00:00
Wim Taymans
87f5574e39
rectangle: clear rectangle struct before use
2014-12-16 13:35:14 +01:00
Nick Stoughton
a344b99c98
bluez: support compile-time distinction between bluez4 and bluez5
...
Signed-off-by: Nick Stoughton <nstoughton@aether.com>
https://bugzilla.gnome.org/show_bug.cgi?id=738626
2014-12-11 09:08:47 +05:30
Alessandro Decina
4d89d7116b
vtenc: bump rank to PRIMARY
2014-12-11 00:02:26 +11:00
Alessandro Decina
21f8c96d75
vtenc: negotiate profile and level with downstream
2014-12-10 22:36:53 +11:00
Alessandro Decina
8166487a00
vtenc: report latency
2014-12-10 19:44:51 +11:00
Sebastian Dröge
b88e4304f1
vtenc: Add properties to specify the maximum keyframe interval in frames and seconds
2014-12-05 16:33:54 +01:00
Sebastian Dröge
1a2362eb2b
vtenc: Fix conversion of the bitrate property and our internal bitrate storage
...
The property is in kbit/s and we store it in bit/s, so just multiply and
divide by 1000. No need to put a factor of 8 in there.
kVTCompressionPropertyKey_AverageBitRate is also in bit/s according to
its documentation.
2014-12-05 16:17:16 +01:00
Chun-wei Fan
788297fec3
dshowvideosink: Port to 1.0 and new GLib threading API
...
This updates the dshowvideosink to work with the GStreamer 1.0.x APIs, and
avoids the use of deprecated GLib threading API that are now used since
GLib 2.32+
https://bugzilla.gnome.org/show_bug.cgi?id=699364
2014-12-05 08:02:02 +00:00
Matthew Bader
54a7bdc0be
dshowdecwrapper: Port to 1.x
...
https://bugzilla.gnome.org/show_bug.cgi?id=740945
2014-12-04 22:09:29 +01:00
Reynaldo H. Verdejo Pinochet
89eb1e9a03
vcdsrc: port to 1.
...
https://bugzilla.gnome.org/show_bug.cgi?id=547661
2014-12-04 17:00:52 -03:00
Matthew Bader
d627f4b93b
dshowsrcwrapper: Fixed null caps comparison
...
https://bugzilla.gnome.org/show_bug.cgi?id=741086
2014-12-04 18:04:11 +01:00
Sebastian Dröge
2d25f2e0b8
decklink: Fix make distcheck
...
And properly dist all headers and source files.
2014-12-04 15:43:20 +01:00
Sebastian Dröge
d0892984bc
decklink: Fix compiler warnings with gcc in the dispatcher
2014-12-03 16:01:32 +01:00
Sebastian Dröge
9aa8bf1705
decklink: Update Windows SDK headers to 10.3.1
...
No idea where the DecklinkAPIDispatch.cpp comes from on Windows,
but this should still work. Will just become a problem once we
use other parts of the API.
2014-12-03 15:16:18 +01:00
Sebastian Dröge
9a8a944d2f
decklink: Update OS X SDK headers to 10.3.1
2014-12-03 14:42:43 +01:00
Sebastian Dröge
5d74b4ba42
decklink: Update Linux SDK headers to 10.3.1
2014-12-03 14:39:13 +01:00
Sebastian Dröge
55721c62e6
decklinksink: Drop too late frames and start scheduled playback at the correct time
2014-11-28 17:32:29 +01:00
Sebastian Dröge
c180012d02
decklinksrc: For the source, unsetting the callback already deletes it
2014-11-28 15:06:42 +01:00
Sebastian Dröge
820894a871
decklinksink: Wait for the pipeline clock instead of the decklink clock
...
Otherwise we're going to starve other elements if the decklink clock
is slower than the pipeline clock, or starts much later.
Of course this will still cause problems if the decklink clock and ours are
completely out of sync, or running at a very different rate. But this at least
works better now.
2014-11-28 14:58:41 +01:00
Sebastian Dröge
d191fb4476
decklinksink: Schedule video frames according to their timestamps, not according to a frame counter
2014-11-28 14:58:41 +01:00
Sebastian Dröge
b4695f60e5
decklinksink: Add some FIXME comments about synchronization
2014-11-28 14:58:41 +01:00
Sebastian Dröge
50c4ea54f6
decklinksrc: Sample the pipeline clock for the timestamps instead of coming up with our own
...
If we just count the frames and calculate timestamps from that, all frames
will arrive late in the sink as we have a live source here. Instead take
the pipeline clock at capture time as reference.
2014-11-28 14:56:19 +01:00
Sebastian Dröge
ee8766b342
decklinksrc: Handle callback/delegate object the same way as in the sink
...
Potentially fixes crashes.
2014-11-28 14:51:53 +01:00
Sebastian Dröge
2a0123d79a
decklinksink: Don't crash when going to READY another time
...
We have to handle the callback object a bit different:
a) it needs a virtual destructor
b) we need to set the callback to NULL when we're done with the output
c) create a new one every time
https://bugzilla.gnome.org/show_bug.cgi?id=740616
2014-11-28 14:51:52 +01:00
Alessandro Decina
d25813c9bc
vtenc: add quality property
2014-11-27 18:41:21 +01:00
Alessandro Decina
6a4270d5cc
vtenc: set profile and level in caps
2014-11-27 18:41:21 +01:00
Tim-Philipp Müller
a964491735
Remove unported and obsolete qtwrapper plugin code
...
QuickTime is deprecated, we want new plugins based
on avfoundation (osx) or dxva/mediafoundation (windows).
2014-11-26 14:43:21 +00:00
Tim-Philipp Müller
99a17503a4
winks: fix debug message format issues
...
And print last bits of GUID properly instead
of printing nonsense.
https://bugzilla.gnome.org/show_bug.cgi?id=733055
2014-11-25 16:31:50 +00:00
Sebastian Dröge
11485e32ab
decklink: Add support for 2k modes
2014-11-24 14:11:04 +01:00
Sebastian Dröge
104f39dfe8
decklink: HD1080i50 is 50 frames per second
2014-11-24 13:56:56 +01:00
Alessandro Decina
d45a2f0480
vtenc: let VT pick the bitrate by default
2014-11-21 15:48:08 +01:00
Alessandro Decina
d800ac023b
vtenc: set H264_Baseline_AutoLevel on OSX as well
2014-11-20 16:06:46 +01:00
Alessandro Decina
d0ce9a6f7c
vtdec: disable the reorder queue for baseline streams
2014-11-20 16:06:46 +01:00
Sebastian Dröge
6e2e8ec0ac
vtdec: Fix divide by zero in the picture buffer length calculation
2014-11-20 09:42:24 +01:00
Reynaldo H. Verdejo Pinochet
21b544863a
dvbsrc: drop explicit comparisons against 0 for true/false
2014-11-16 20:32:56 -03:00
Tim-Philipp Müller
3e1d763018
dvbbasebin: fix possible crash by passing 64 bits for 64-bit queue property
...
https://bugzilla.gnome.org/show_bug.cgi?id=740191
2014-11-15 21:59:48 +00:00
Sebastian Dröge
bdfac8a6d4
decklink: Fix indention
2014-11-14 10:41:59 +01:00
Alessandro Decina
5977ef5552
vtenc: fix build on iOS
2014-11-12 16:45:12 +01:00
Alessandro Decina
ad00f4a0e2
coremediabuffer: set ->pixel_buf for CVPixelBuffer buffers
...
Fix a bug for which we never actually set ->pixel_buf to non-NULL for
CVPixelBuffer buffers.
2014-11-12 15:40:30 +01:00
Alessandro Decina
a1cc1b34e1
vtenc: fix compilation on < 10.9
2014-11-12 10:00:11 +01:00
Alessandro Decina
bc7dbd7b51
vtenc: enable the hw encoder on OSX
2014-11-11 18:01:54 +01:00
Sebastian Dröge
e47dbaed07
decklinksink: Check the correct variable for failure
...
If we can't get an output, we would otherwise just use it later and crash.
2014-11-11 12:00:30 +01:00
Sebastian Dröge
98b856d630
avfvideosrc: Don't pretend to support reconfiguration
...
We will run into an assertion in set_caps() if we try to change
caps while the source is already running. Don't try to find new
caps in GstBaseSrc::negotiate() to prevent caps changes.
2014-11-09 10:41:52 +01:00
Alessandro Decina
1d97516731
vtenc: add realtime and allow-frame-reordering properties
2014-11-07 00:22:08 +01:00
Tim-Philipp Müller
f216b7bb11
Sprinkle some G_PARAM_DEPRECATED and #ifndef GST_REMOVE_DEPRECATED
2014-11-02 17:19:34 +00:00
Tim-Philipp Müller
95c211dc49
Add some missing G_END_DECLS
2014-10-28 21:42:31 +00:00
Tim-Philipp Müller
6505e84f7c
dvbsrc: reflow switch case statement a bit
...
Make it clear there's no 'break' missing at the end
of the case SYS_DVBT, and pacify coverity (CID 1249689).
2014-10-27 12:43:53 +00:00
Reynaldo H. Verdejo Pinochet
e9cb4c58ab
dvbsrc: correctly capitalize DiSEqC
2014-10-24 21:42:58 -03:00
Reynaldo H. Verdejo Pinochet
2879abd4f9
dvbsrc: rework _output_frontend_stats()
...
Retry stat reporting ioctls on EINTR
2014-10-24 20:24:36 -03:00
Reynaldo H. Verdejo Pinochet
34216b8332
dvbsrc: add checks on allowed DVB-T bandwidths
2014-10-24 20:24:36 -03:00
Reynaldo H. Verdejo Pinochet
c1d48d4acd
dvbsrc: add fixme note on DTV_LNA setting
...
Rephrase another comment while at it
2014-10-24 20:24:30 -03:00
Reynaldo H. Verdejo Pinochet
ed7e763b9d
dvbsrc: add missing logic for additional bandwidths
...
New 1.712, 5 and 10 MHz bandwidths were been ignored
at set/get prop.
2014-10-24 18:57:40 -03:00
Sebastian Dröge
68c067e3c9
vtenc: Fix locking
...
The object lock only protects the session, as we modify
the session from other threads when the bitrate property
is changed. Don't hold it much longer than for session
related things.
And we need to release the video decoder stream lock before
enqueueing a frames. It might wait for our callback to dequeue
a frame from another thread, which will then take the stream
lock too and deadlock.
2014-10-21 16:22:06 +02:00
Sebastian Dröge
ad649138aa
vtenc: Use kVTProfileLevel_H264_Baseline_AutoLevel only on iOS
...
It is not required on OSX apparently and was only added in 10.9.6 there.
Calculating the correct level from the configuration is not trivial, so let's
just not set a level at all here.
2014-10-19 14:57:43 +02:00
Sebastian Dröge
b57f255f26
vtenc: VTCompressionSessionPrepareToEncodeFrames only exists since 10.9.6
...
Check with configure for it instead of using one of the availability macros
as those wouldn't work as expected with minor versions.
2014-10-19 14:51:40 +02:00
Sebastian Dröge
e79355078e
vtenc: Remove unused #define
2014-10-19 14:32:31 +02:00
Sebastian Dröge
3cead041f6
vtdec: Set reorder length to 0 if we can't calculate it
...
Instead of leaving it at whatever value it had before.
2014-10-14 09:19:59 +02:00
Reynaldo H. Verdejo Pinochet
f426aee5db
dvb: make interleaving a prop and proxy on dvbbasebin
...
DTV_INTERLEAVING is currently used only for DTBM. This is
congruent with the v4l dvb API where the different interleaving
modes where added for v5.7
2014-10-12 21:37:24 -03:00
Reynaldo H. Verdejo Pinochet
a3f8899e8b
dvbsrc: add transmission mode checks for DVB-T/T2
...
These and every sanity check leading to a warning
(we have a few in place) should come handy when
debuging failed tunning scenarios.
2014-10-12 21:37:24 -03:00
Reynaldo H. Verdejo Pinochet
97df6ee85d
dvbsrc: docs, drop v5 API change history comments < .5
...
We only support from minor 5 and up now. Also add a
note about the recently added preliminar DTMB support.
2014-10-12 21:37:24 -03:00
Reynaldo H. Verdejo Pinochet
e26eecd182
dvbsrc: add missing DVB-T2 bandwidth types
...
DVB-T2 supports 5, 10 and 1.712 MHz
Order of the enum values (new values after _AUTO)
has been kept congruent with the one in the v4l
API for consistency
2014-10-12 21:37:24 -03:00
Reynaldo H. Verdejo Pinochet
b0ade1a317
dvbsrc: add preliminary support for DTMB
...
Previously known as DMB-T/H, this is the
terrestial DTV broadcast standard currently
used by the People's Republic of China,
Hong Kong, Laos and Macau (officially),
and by Malaysia, Iraq, Jordan, Syria and
Lebanon (experimentally).
2014-10-03 23:27:04 -03:00
Reynaldo H. Verdejo Pinochet
5a2d834585
dvbsrc: add missing standard transmission modes
...
These apply to ISDB-T, DVB-T2 and DTMB
Order of the enum values (new rates after _AUTO)
has been kept congruent with the one in the v4l
API for consistency.
2014-10-03 23:27:04 -03:00
Reynaldo H. Verdejo Pinochet
9ed8fa25f4
dvbsrc: add missing DTMB guard intervals
2014-10-03 23:27:03 -03:00
Reynaldo H. Verdejo Pinochet
7724d406ea
dvbsrc: add missing DVB-T2 guard intervals
...
According to the v4l-dvb API docs, these are only
used for DVB-T2 at the moment.
Order of the enum values (new rates after _AUTO)
has been kept congruent with the one in the v4l
API for consistency.
2014-10-03 23:27:03 -03:00
Reynaldo H. Verdejo Pinochet
cebba78b17
dvbsrc: add _MUTABLE_PLAYING to tuning props
...
The element can (re)tune while playing so basically
every property used at set_fe_params() can be set
in state <= PLAYING.
2014-10-03 23:27:03 -03:00
Sebastian Dröge
66a4572c12
androidmedia: Fix calculation of the frame size for COLOR_FormatYUV420Planar
...
https://bugzilla.gnome.org/show_bug.cgi?id=734156
2014-10-02 10:26:43 +03:00
Anuj Jaiswal
593f7d520e
androidmedia: break statements unnecessary
...
Code flow never arrives to the break statements due to the goto's. So the
breaks are unecessary. Second part to commit a3958ae65b
https://bugzilla.gnome.org/show_bug.cgi?id=736940
2014-09-24 12:17:41 +01:00
Anuj Jaiswal
a3958ae65b
androidmedia: break statement unnecessary
...
Code flow never arrives to the break statements due to the goto's. So the
breaks are unecessary.
https://bugzilla.gnome.org/show_bug.cgi?id=736942
2014-09-24 12:12:16 +01:00
Joshua M. Doe
27eb6555d1
dshowsrcwrapper: avoid error when set_caps called twice
...
If set_caps is called in a running state, return immediately if the caps
haven't changed. If the pins are already connected, disconnect them.
https://bugzilla.gnome.org/show_bug.cgi?id=736926
2014-09-24 10:02:39 +03:00
Reynaldo H. Verdejo Pinochet
784d2403dc
dvbsrc: add missing FEC rates
...
Order of the enum values (new rates after _AUTO)
has been kept congruent with the one in the v4l
API for consistency.
2014-09-21 14:37:30 -03:00
Sebastian Dröge
3c1ccb64eb
vtenc: Fix encoder to work on iOS
...
iOS has special stride requirements that we don't know yet, so copy
input buffers into buffers allocated by iOS for now.
Later we should check the stride and probably provide a buffer pool for these
buffers so upstream can directly write in there.
2014-09-19 14:47:05 +03:00
Sebastian Dröge
bee1477f08
applemedia: We need to map the coremedia buffers in non-readonly mode
...
Our buffers claim to be writable so other elements expect to be able
to write there without losing their changes.
2014-09-19 14:47:04 +03:00
Sebastian Dröge
9380f6282d
vtenc: Let the encoder automatically choose a h264 level
...
We should negotiate these things via caps...
2014-09-18 17:49:46 +03:00
Sebastian Dröge
31476a3c46
vtenc: Use 0 instead of G_MAXDOUBLE as the max keyframe interval
...
0 means no limit, which was meant here with G_MAXDOUBLE probably.
2014-09-18 13:45:33 +03:00
Sebastian Dröge
8c1e84ff71
vtenc: Expected duration is supposed to be the duration of the stream, not a frame
...
Just don't set it for now, it isn't really needed.
2014-09-18 13:42:24 +03:00
Sebastian Dröge
61c40523df
vtenc: Properly handle keyframes
...
Especially set the SYNC_POINT flag on keyframes.
2014-09-18 13:11:05 +03:00
Jerome Laheurte
4f60ecdd98
dshowsrcwrapper: Port to 1.0
...
https://bugzilla.gnome.org/show_bug.cgi?id=732283
2014-09-18 12:36:34 +03:00
Sebastian Dröge
de9b0be86d
vtdec: Fix compilation
2014-09-18 10:30:04 +03:00
Sebastian Dröge
e653068bc2
vtdec: Handle 0/1 framerates correctly by not calculating their frame duration
2014-09-18 09:47:06 +03:00
Sebastian Dröge
916155da2b
atdec: Fix some compiler warnings with newer clang
2014-09-17 17:37:12 +03:00
Sebastian Dröge
ddea2e4498
vtenc: Prepare encoder after setup
...
This will allow encoding to happen faster on the first frame.
2014-09-17 17:10:58 +03:00
Sebastian Dröge
c6f17d6013
vtenc: Only drain the encoder in ::finish(), not on every frame
...
Otherwise quality and bitrate will be bad.
2014-09-17 17:08:57 +03:00
Sebastian Dröge
0390398e39
vtenc: Error out if encoding returned an error
...
Otherwise we will just continue consuming frames until all memory is filled
up and the app crashes.
2014-09-17 15:39:26 +03:00
Sebastian Dröge
e3bc32fb58
vtenc: Check for errors from VTCompressionSessionCompleteFrames()
2014-09-17 14:56:05 +03:00
Sebastian Dröge
b93e0f5f99
vtenc: Properly scale timestamps for the API and set invalid values
2014-09-17 14:55:24 +03:00
Sebastian Dröge
e4563ce6cf
vtdec: Properly scale timestamps for the API and set invalid values
2014-09-17 14:54:39 +03:00
Sebastian Dröge
d789246077
applemedia: Remove old code that is of no use anymore
2014-09-17 13:19:04 +03:00
Sebastian Dröge
82aae4df74
applemedia: Do weak linking with the VideoToolbox framework
...
It does not exist on older OSX and iOS but we still want to
be able to use it when it's available.
2014-09-17 10:38:20 +03:00
Sebastian Dröge
7fa9bbc3b0
vtenc: Port to GstVideoEncoder base class
2014-09-16 17:04:31 +03:00
Sebastian Dröge
4e1f8285c2
vtenc: Use correct instance struct size
2014-09-16 16:13:16 +03:00
Sebastian Dröge
3a52f6b757
vtdec: Fix compiler warnings
...
values of type 'OSStatus' should not be used as format arguments; add an explicit cast to 'int' instead [-Wformat]
2014-09-16 15:48:11 +03:00
Sebastian Dröge
f2eedb9cee
vtenc: Port to the real VideoToolbox API instead of using our dlopen() wrapper
...
It's a public framework since a long time.
2014-09-16 15:47:29 +03:00
Ognyan Tonchev
dc421b308b
vdpdecoder: do not leak pool
...
https://bugzilla.gnome.org/show_bug.cgi?id=736733
2014-09-16 12:51:06 +03:00
Sebastian Dröge
0f0a50c119
vtdec: No need to set kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder on iOS
2014-09-15 15:42:41 +03:00
Sebastian Dröge
c82fa4f845
applemedia: Don't include VideoToolbox on iOS < 8.0
...
It's private API and does not work without a jailbroken device.
2014-09-15 15:12:31 +03:00
Sebastian Dröge
0b34cde46e
vtdec: Fix compilation on iOS 8.0
2014-09-13 20:49:16 +03:00
Edward Hervey
562880bef9
dvbsrc: Use proper variable for delivery system
...
We want to check the delivery system is ISDBT (and not the modulation
which we check later in that case).
CID #1238439
2014-09-12 14:49:44 +02:00
Tim-Philipp Müller
7b8bd35d18
Fix up one-element lists in template caps
2014-09-10 17:24:39 +01:00
Tim-Philipp Müller
ffe59820d8
avfvideosrc: fix bogus BGRA caps
...
Remove 0.10-style endianness/*_mask/bpp/depth fields.
2014-09-10 16:38:52 +01:00
Reynaldo H. Verdejo Pinochet
10ece74f10
dvbsrc: retry opening the frontend on EINTR
2014-09-07 17:39:51 -03:00
Reynaldo H. Verdejo Pinochet
071f93c72f
dvbsrc: assorted doc & spelling fixes
2014-09-07 17:39:51 -03:00
Reynaldo H. Verdejo Pinochet
641e0e973e
dvbsrc: simplify ISDB-T launch line example
2014-09-02 18:06:53 -04:00
Reynaldo H. Verdejo Pinochet
1adc34cc03
dvbsrc: delay locking till actually needed
...
Get rid of unneeded locking at prop setting by doing
it only when tuning the frontend at _tune_fe()
2014-09-02 17:11:40 -04:00
Sebastian Dröge
f5e73d2808
amcaudiodec: Remove hack for Google MP3 decoder
...
The first buffer does not contain more garbage than any other MP3 decoder
outputs and we don't really know how much we have to drop or not.
After this change the output has the same duration as with mad.
2014-09-01 17:44:04 +03:00
Reynaldo H. Verdejo Pinochet
cd73c776f2
dvbsrc: fix description for modulation prop
2014-08-29 19:38:00 -04:00
Reynaldo H. Verdejo Pinochet
17beaed35f
dvbsrc: add basic checks on ISDB-T parameters
...
Also add a routine for checking wrong delsys/modulation
combinations right before tuning (only implemented for
ISDB-T for now).
2014-08-29 19:38:00 -04:00
Reynaldo H. Verdejo Pinochet
fd64a75926
dvbsrc: add support for additional modulation types
2014-08-29 19:38:00 -04:00
Reynaldo H. Verdejo Pinochet
a0c79bc72b
dvbsrc: drop FIXME on _ISDBT_LAYER_ENABLED prop
...
Valid values range from 1 to 7 as stated.
DTV_ISDBT_LAYER_ENABLED bitmask is built from
OR-ing 0x1 0x2 0x4. If all bits are set
(0x00000111 = 7) it means all layers should be
demodulated.
2014-08-29 19:38:00 -04:00
Sebastian Dröge
8f25220b9c
androidmedia: Make sure to unblock any thread waiting on the drain condition variable when errors happen
2014-08-14 15:27:21 +03:00
Sebastian Dröge
ca62186797
androidmedia: Fix draining logic to let the base class handle EOS events
...
https://bugzilla.gnome.org//show_bug.cgi?id=734775
2014-08-14 15:27:21 +03:00
Reynaldo H. Verdejo Pinochet
17181bfe16
dvbbasebin: fix parsing of freqs in some ZAP files
...
Change avoids attempting to convert to kHz if unneeded.
There are quite some ZAP format variants out there. Among
their subtle little differences, some store transponder
frequencies in Mhz and others in kHz. The latter been the
most common variant.
2014-08-13 13:10:04 -04:00
Reynaldo H. Verdejo Pinochet
d314a3a591
dvbsrc: get rid of remaining trailing whitespace
2014-08-13 13:10:04 -04:00
Reynaldo H. Verdejo Pinochet
98cc508557
dvbsrc: wrap around known-interruptible ioctls
...
Also get rid of the asumption that some requests like
FE_SET_TONE or FE_SET_VOLTAGE only error out with -1
2014-08-13 13:10:04 -04:00
Reynaldo H. Verdejo Pinochet
4f10ab0671
dvbsrc: drop gst_dvbsrc_retry_ioctl for retry macro
...
LOOP_WHILE_EINTR macro makes it easier to handle
assorted ioctl argp types. Functionality is otherwise
equivalent.
2014-08-13 13:10:04 -04:00
Reynaldo H. Verdejo Pinochet
23fccad1fd
dvbsrc: dvbbasebin: add 'tune' signal
...
It works the same as the 'tune' property that is used only to signal
the element that it should tune, but it is more natural to be used
as a signal rather than a property.
It is also proxied at the dvbbasebin element
2014-08-13 13:10:03 -04:00