Commit graph

2035 commits

Author SHA1 Message Date
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
Sebastian Rasmussen
078958bd6b pvrvideosink: Avoid leaking bufferpool configuration
gst_buffer_pool_get_config() returns a copy to the bufferpool's
configuration, which must be passed to gst_structure_free() after
use if not given away to gst_buffer_pool_set_config().

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734537
2014-08-10 12:19:50 +01:00
Sebastian Rasmussen
6d151843ef directsoundsrc: Avoid leaking copy of caps object
gst_pad_get_pad_template_caps() returns a reference which is unreferenced,
so creating a copy using gst_caps_copy() results in a reference leak.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734536
2014-08-10 12:16:08 +01:00
Sebastian Rasmussen
b323fba934 vtenc: Avoid leaking caps object and its copy
gst_pad_get_pad_template_caps() returns a reference which is unreferenced,
so creating a copy using gst_caps_copy() results in a reference leak. Also
the caps are pushed as an event downstream, but this doesn't consume the
caps so it must still be unreferenced.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734534
2014-08-10 12:13:48 +01:00
Sebastian Rasmussen
c1d5aa3da5 amcvideoenc: Avoid leaking copy of caps object
gst_pad_get_pad_template_caps() returns a reference which is unreferenced,
so creating a copy using gst_caps_copy() results in a reference leak.
Also remove the incorrect comment to avoid confusion in the future.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734533
2014-08-10 12:11:10 +01:00
Reynaldo H. Verdejo Pinochet
3e5c56e5fb dvbsrc: remove srcpad leftover
The element is inheriting its srcpad from basesrc
2014-08-03 19:13:36 -04:00
Sebastian Dröge
a680867761 decklinksink: Initialize pixel format to bmdFormat8BitYUV
https://bugzilla.gnome.org/show_bug.cgi?id=725871
2014-08-01 18:02:10 +02:00
Sebastian Dröge
fd793e9498 decklinksink: Catch errors during data flow and error out properly
Otherwise we will just deadlock the thread if e.g. scheduling a video
frame fails for whatever reason.
2014-08-01 16:59:42 +02:00
Sebastian Dröge
a8f94fe1e1 decklink: 59.94fps is 60000/1001, not 30000/1001
And also change 30/1 to 60/1 for one 60fps mode.
2014-08-01 12:39:47 +02:00
Reynaldo H. Verdejo Pinochet
d17203d26a dvbsrc: clarify units for freq and symbol-rate 2014-07-28 00:05:57 -04:00
Reynaldo H. Verdejo Pinochet
01e7e36217 dvbsrc: add preliminary support for ISDB-T/Tb
ISDB-T and ISDB-Tb (the Brazilian variant) are the
terrestial DTV standards used by Japan, Philippines,
Maldives, Thailand, most South American countries
and Botswana. Changeset adds the set of previously
missing (and required) ISDB-T parameters, adapter
and frontend setup logic and proxies the new
properties on dvbbasebin.

Tested to work with the live aerial broadcast by
Tv Paraíba HD in Campina Grande (Brazil).

https://bugzilla.gnome.org/show_bug.cgi?id=732875
2014-07-28 00:05:38 -04:00
Reynaldo H. Verdejo Pinochet
8391112af5 dvbsrc: make slof/lof1/lof2 settable properties
Allows proper tuning around high/low band boundaries when using
non "standard" LNBs.

Not all LNBs (Low noise block down converters) are made equal.
This is particularly true for universal LNBFs, where, even though
there are seemingly standard values for the local oscillator
frequencies, these can vary from manufacturer to manufacturer
and LNB model. Change also proxies the new LNB properties in
dvbbasebin.

https://bugzilla.gnome.org/show_bug.cgi?id=732818
2014-07-28 00:05:18 -04:00
Sebastian Dröge
8d5217141a openslesringbuffer: Provide the size of our array to GetDestinationOutputDeviceIDs
Otherwise it does not and just fails. It needs to know the size of the
array to not write too much to it.
2014-07-17 00:18:41 +02:00
Sebastian Dröge
fe42739a3e openslessink: Silence some error debug output to log output
These are not really errors, just unsupported features we don't
necessarily need.
2014-07-17 00:18:41 +02:00
Sebastian Dröge
4ec87d9690 d3dvideosink: Open Direct3D devices in a threadsafe way
Otherwise we'll get crashes when using the device from multiple
threads, e.g. when using multiple sinks at once.

https://bugzilla.gnome.org/show_bug.cgi?id=707523
2014-07-15 13:30:16 +02:00
Sebastian Dröge
2b63783c94 atdec: Change rank to MARGINAL until it can properly handle multichannel audio
https://bugzilla.gnome.org/show_bug.cgi?id=727757
2014-07-11 09:43:44 +02:00
Sebastian Dröge
c134930dbe d3dvideosink: Always lock the D3D surfaces in write mode
Locking them in readonly mode can give different stride to mapping
in write mode, which then causes rendering to be broken.

Happened on all (many?) NVIDIA GPUs.

Thanks to voskater15@gmail.com for hinting at the problem.

https://bugzilla.gnome.org/show_bug.cgi?id=712809
2014-07-03 19:10:26 +02:00
Sebastian Dröge
73c40a3132 d3dhelpers: Swap UV planes properly for YV12 as compared to I420
If we only do it in one place colors will look funny.
2014-07-03 19:06:26 +02:00
Sebastian Dröge
74c2e64d5d amc: Properly integrate COLOR_QCOM_FormatYVU420SemiPlanar32m again
https://bugzilla.gnome.org/show_bug.cgi?id=732683
2014-07-03 17:53:33 +02:00
Sebastian Dröge
93bce7aeb7 amcaudiodec: audio/mpeg is always MPEG 1 layer 3
Configuring e.g. layer 2 on such a decoder usually fails unless
it additionally also accepts audio/mpeg-L2.
2014-07-03 15:07:23 +02:00
Alessandro Decina
0258ec0273 applemedia: enable vtdec and vtenc only on >= 10.8 where VideoToolbox is public
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=723670
2014-07-02 12:56:06 +02:00
Thiago Santos
92dbcf2bf9 vtdec: avoid segfault when output isn't configured
This can help when the callback is called during/after videodecoder
base class shut down

https://bugzilla.gnome.org/show_bug.cgi?id=728435
2014-07-02 06:19:58 -03:00
Thiago Santos
f75f860ff3 vtdec: ignore the dropped flag if buffer was received
Apparently there is some issue with VT that makes it mark the dropped
flag even though the buffer was decoded.

https://bugzilla.gnome.org/show_bug.cgi?id=728435
2014-07-02 05:48:32 -03:00
Sebastian Dröge
25974ac0a9 d3dvideosink: Don't leak all surfaces
This was broken when disabling the buffer pool exporting.

Also disable buffer pool a bit more efficient...
2014-07-02 10:33:15 +02:00
Sebastian Dröge
28d250ec3f d3dvideosink: PostMessage() takes integers as last parameters, not pointers 2014-07-02 10:33:15 +02:00
Sebastian Dröge
677608bfb7 d3dvideosink: Remove unused variable 2014-07-02 10:33:15 +02:00
Matthieu Bouron
e1601406a5 vtenc: fix memory leak
The pixel buffer release callback is called if the void *
dataPtr given to the CVPixelBufferCreateWithPlanarBytes
is not NULL.

According to the documentation dataPtr is supposed to be a
"plane description block" but no specific type is given.

https://bugzilla.gnome.org/show_bug.cgi?id=711847
2014-06-30 13:09:28 +02:00
Sebastian Dröge
01fd3a1396 uvch264src: Free property strings when disposing the instance 2014-06-29 21:01:39 +02:00
Sebastian Dröge
b02cbcfa42 uvch264src: Fix compiler warning when compiling with G_DISABLE_ASSERT 2014-06-29 20:13:10 +02:00
Edward Hervey
22dfd9aef3 mpegts: Unify API : GstMpegts / gst_mpegts_ / GST_*_MPEGTS_
It was previously a mix and match of both variants, introducing just too much
confusion.

The prefix are from now on:
* GstMpegts for structures and type names (and not GstMpegTs)
* gst_mpegts_ for functions (and not gst_mpeg_ts_)
* GST_MPEGTS_ for enums/flags (and not GST_MPEG_TS_)
* GST_TYPE_MPEGTS_ for types (and not GST_TYPE_MPEG_TS_)

The rationale for chosing that is:
* the namespace is shorter/direct (it's mpegts, not mpeg_ts nor mpeg-ts)
* the namespace is one word under Gst
* it's shorter (yah)
2014-06-25 14:50:05 +02:00
Reynaldo H. Verdejo Pinochet
3d22f686b6 dvbsrc: add copyright/license stub to header 2014-06-25 01:05:45 -04:00
Reynaldo H. Verdejo Pinochet
643a19b0dc dvbsrc: documentation fixes 2014-06-25 01:05:40 -04:00
Eric Trousset
f54efc206f d3dvideosink: Release D3D surfaces when shutting down the sink
https://bugzilla.gnome.org/show_bug.cgi?id=726026
2014-06-23 20:44:23 +02:00
Sebastian Dröge
aa5f55cebe openslessrc: Classification of the element factory should be Source/ not Src/
https://bugzilla.gnome.org/show_bug.cgi?id=727811
2014-06-23 20:34:24 +02:00
Reynaldo H. Verdejo Pinochet
622953cb9b dvbsrc: fix diseqc-source prop name in example 2014-06-22 23:42:36 -04:00
Reynaldo H. Verdejo Pinochet
9fd3014a40 dvbsrc: fix nit on warning message 2014-06-22 23:42:36 -04:00
Sebastian Dröge
337bc06de1 androidmedia: Clear exceptions also when we did not provide a GError 2014-06-20 14:59:12 +02:00
Sebastian Dröge
aee9d12b86 androidmedia: Also don't report warnings for queue/dequeue errors during flushing in error cases
... and fix a case where we released an invalid buffer index.
2014-06-19 18:34:05 +02:00
Sebastian Dröge
880f3d8a18 androidmedia: Don't consider input buffer queueing failures as an error during flushing 2014-06-19 18:34:05 +02:00
Sebastian Dröge
71c0e0e19f androidmedia: Clean up flushing code and don't consider output buffer releasing failures during flushing as an error 2014-06-19 18:34:05 +02:00
Vincent Penquerc'h
402086a82d dvbsrc: do not try to close negative file descriptors
Interestingly, Coverity implies that close takes an unsigned
argument, while my close(2) man page shows it taking a signed
argument. I guess it may be platforms specific.

Coverity 1214602
2014-06-12 10:18:16 +01:00
Reynaldo H. Verdejo Pinochet
7c1f7fd787 dvbsrc: drop redundant assignment 2014-06-05 12:56:46 -04:00
Reynaldo H. Verdejo Pinochet
56933d97ec dvbsrc: improve timeout handing at locking loop
New approach attempts to be more accurate by measuring
the elapsed time by iteration. Also:

* Use a 10 seconds default timeout and a half a second
  polling step. New values should better match the tuning
  process on real-life scenarios.
* Correct elapsed_time computation.
* Add _retry_ioctl() to avoid bailing out on temporary
  ioctl EINTR failures (no need to check for EAGAIN cause
  we are opening the frontend on blocking mode)
* Small corrections to fail condition handling
2014-06-05 12:56:46 -04:00
Olivier Crête
db09922842 shmsink: Allocate enough memory to do alignment
https://bugzilla.gnome.org/show_bug.cgi?id=731093
2014-06-02 21:43:34 -04:00
Sebastian Dröge
b44724f662 androidmedia: Actually print the stacktrace into the error string 2014-06-02 12:39:49 +02:00
Sebastian Dröge
40fb09544f androidmedia: Clear the exception before trying to call Java methods to convert it to a string 2014-06-02 11:28:43 +02:00
Sebastian Dröge
0c93a82861 androidmedia: Fix crashes when loading the plugin in a standalone application on Android >= 4.4
Check if libnativehelper is loaded in the process and if
it has these awful wrappers for JNI_CreateJavaVM and
JNI_GetCreatedJavaVMs that crash the app if you don't
create a JniInvocation instance first. If it isn't we
just fail here and don't initialize anything.

See this code for reference:
https://android.googlesource.com/platform/libnativehelper/+/master/JniInvocation.cpp
2014-06-02 11:18:38 +02:00
Tim-Philipp Müller
ef143252d0 dvbbasebin: better error handling in case tsparse is missing
https://bugzilla.gnome.org/show_bug.cgi?id=730641
2014-06-01 10:47:12 +01:00
Reynaldo H. Verdejo Pinochet
d564b62ee8 dvbbasebin: add prop setup code for guint64
Needed since we are now proxying tuning-timeout
from dvbsrc.
2014-05-30 17:58:50 -04:00
Reynaldo H. Verdejo Pinochet
81d01f5db0 dvb/cam*: use g_strerror and other few nits 2014-05-30 13:12:32 -04:00
Reynaldo H. Verdejo Pinochet
e4dac3dbb2 dvbbasebin: fix dvbsrc signal proxying
https://bugzilla.gnome.org/show_bug.cgi?id=641204
2014-05-30 13:09:01 -04:00
Reynaldo H. Verdejo Pinochet
4880a8ad14 dvbbasebin: proxy new props/signals from dvbsrc
Proxy tuning start/done/fail signals and tuning-timeout
property.

https://bugzilla.gnome.org/show_bug.cgi?id=641204
2014-05-30 16:41:27 +02:00
Reynaldo H. Verdejo Pinochet
e68a6d48cb dvbsrc: smarten up tuning logic
* Drop remaining sleep() logic in favor of polling
* Use best guess delivery system if none is set
* Make tuning/locking timeout configurable
* Add signals for tuning start, done and fail
* Drop gst_dvbsrc_frontend_status(). It was used only
  for signal LOCK checking. This is now part of the
  tuning/locking loop
* Break up frontend configuration and tuning
  on separate functions

Plus:

* Add some more useful DEBUG/TRACE messages
* Move over misplaced DVB API message
* Fix wrong comment for default DVB buffer size (http://linuxtv.org/downloads/v4l-dvb-apis/dmx_fcalls.html#DMX_SET_BUFFER_SIZE)

This patch builds up on previous work done by
Fabrizio (Misto) Milo <mistobaan@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=641204
2014-05-30 16:41:27 +02:00
Sebastian Dröge
f844af2320 androidmedia: Add exceptions from the Java API to error messages, and post more error/warning messages overall 2014-05-30 16:36:11 +02:00
Sebastian Dröge
440574d963 androidmedia: Add a GError argument to all amc methods and catch exceptions there 2014-05-30 15:25:25 +02:00
Sebastian Dröge
22b5abf86c androidmedia: Describe exceptions happening when scanning all codecs 2014-05-30 15:25:21 +02:00
Sebastian Dröge
3cf4c8cad1 androidmedia: Add API to convert an exception into a string 2014-05-30 15:25:21 +02:00
Jorge Zapata
ad82575693 Release the codec before freeing it
On Samsung Galaxy S4 it is impossible to have more than one
hardware decoder at the same time. If we do not release it
explicitly the GC only releases it whenever the whole application
is finished not whenever the activity is finished and thus a player
will not be able to work correctly
2014-05-30 12:40:59 +02:00
Sebastian Dröge
81716909fe Revert "androidmedia: Place some const keywords in a few places"
This reverts commit 3078b3a34c.

gst_video_frame_map() doesn't take a const GstVideoInfo*, so
all this is rather useless.
2014-05-27 08:51:39 +02:00
Sebastian Dröge
3078b3a34c androidmedia: Place some const keywords in a few places 2014-05-26 16:31:11 +02:00
Chen Jie
8e0bbc9e32 androidmedia: add gst_amc_color_format_copy
gst_amc_color_format_copy will copy in/out a frame resides at a
GstAmcBuffer. Lots of codes in gst_amc_video_*_fill_buffer are moved to
this new function.
2014-05-26 16:29:01 +02:00
Chen Jie
557d6b974f androidmedia: move create_src|sink_caps to gstamc.c
Some hack logic needs also to be present in create_src|sink_caps, for
working around some broken codecs. These hacks are hidden
in color_format/video_format conversion -- the prototypes of these
functions are also changed to include more args for hack judgement.

Also in case of multi-color_formats mapped to one video_format, then
map that video_format back will not give the original color_format, which
causes gst_amc_codec_configure failed with something like
'does not support color format N'.

The new prototype involves with GstAmcCodecInfo and mime, which
ensures the converted color_format is supported by the codec.

A COLOR_FormatYCbYCr to GST_VIDEO_FORMAT_YUY2 mapping is also added, in
order to work around bugs in OMX.k3.video.decoder.avc(which incorrectly
reports supporting COLOR_FormatYCbYCr, which is actually
COLOR_FormatYUV420SemiPlanar). There are already hacks for this in
gst_amc_video_format_to_color_format, gst_amc_color_format_to_video_format
and gst_amc_color_format_info_set, but the codec will still not work(be
ignored because of "has unknown color formats") without adding this mapping.
2014-05-26 16:29:01 +02:00
Stefan Ringel
f348944246 dvb: parsechannels: add delsys property
Signed-off-by: Stefan Ringel <linuxtv@stefanringel.de>

https://bugzilla.gnome.org/show_bug.cgi?id=709414
2014-05-26 13:32:21 +02:00
Vincent Penquerc'h
b67f64cf5d dvbsrc: map SYS_DVBC_ANNEX_A SYS_DVBC_ANNEX_AC for DVB API < 5.6
https://bugzilla.gnome.org/show_bug.cgi?id=721869
2014-05-26 13:28:24 +02:00
Vincent Penquerc'h
038d9794a1 dvbsrc: fix typo in testing flag
% instead of &

https://bugzilla.gnome.org/show_bug.cgi?id=721869
2014-05-26 13:28:24 +02:00
Chen Jie
27f4d8237f amcvideoenc: Unit of bitrate property is now bit/sec
https://bugzilla.gnome.org/show_bug.cgi?id=705129
2014-05-26 12:10:44 +02:00
Stefan Ringel
ab7f9654f4 dvbsrc: Add missing tone ioctl
https://bugzilla.gnome.org/show_bug.cgi?id=730692
2014-05-26 09:19:03 +02:00
Jorge Zapata
738da7835f androidmedia: Add a new QCOM color format
It is a NV12 based, aligned to 32 bytes

https://bugzilla.gnome.org/show_bug.cgi?id=730635
2014-05-23 15:19:36 +02:00
Sebastian Dröge
158caf952d androidmedia: First try to get symbols from the current program, then load libdvm
If the application is using the new ART runtime it will otherwise
load dalvik and start a dalvik VM next to the ART VM.
Does not work very well obviously.
2014-05-23 15:13:28 +02:00
Chen Jie
22c0464aa6 androidmedia: add support for video encoding
https://bugzilla.gnome.org/show_bug.cgi?id=705129
2014-05-23 09:37:54 +02:00
Michael Olbrich
c1db46ffc6 dvbsrc: fix building with newer kernel headers
c400eef377 introduced some defines to handle
older kernel headers. However, the check is done before the corresponding
kernel header (dvb/frontend.h) is included. As a result the macros are
always defined with results in 'redefined' errors with newer kernel
headers.
Move the check after the include to fix this.

https://bugzilla.gnome.org/show_bug.cgi?id=730570
2014-05-22 13:02:13 +02:00
Sebastian Dröge
c842df1c3d opensles: Work around race condition in Android < 4.2 that leads to deadlocks on shutdown
We need to sleep a bit before destroying the player object
because of a bug in Android in versions < 4.2.

OpenSLES is using AudioTrack for rendering the sound. AudioTrack
has a thread that pulls raw audio from the buffer queue and then
passes it forward to AudioFlinger (AudioTrack::processAudioBuffer()).
This thread is calling various callbacks on events, e.g. when
an underrun happens or to request data. OpenSLES sets this callback
on AudioTrack (audioTrack_callBack_pullFromBuffQueue() from
android_AudioPlayer.cpp). Among other things this is taking a lock
on the player interface.

Now if we destroy the player interface object, it will first of all
take the player interface lock (IObject_Destroy()). Then it destroys
the audio player instance (android_audioPlayer_destroy()) which then
calls stop() on the AudioTrack and deletes it. Now the destructor of
AudioTrack will wait until the rendering thread (AudioTrack::processAudioBuffer())
has finished.

If all this happens with bad timing it can happen that the rendering
thread is currently e.g. handling underrun but did not lock the player
interface object yet. Then destroying happens and takes the lock and waits
for the thread to finish. Then the thread tries to take the lock and waits
forever.

We wait a bit before destroying the player object to make sure that
the rendering thread finished whatever it was doing, and then stops
(note: we called gst_opensles_ringbuffer_stop() before this already).
2014-05-16 09:10:48 +02:00
Wim Taymans
ccccad4d8d bluez: fix property names
These were forgotten when they got renamed.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=729731
2014-05-14 11:48:47 +02:00
Edward Hervey
b2e037b7de shm: Don't leak GstShmPipe
By reordering the leaking code path to before the allocation

CID #1212153
2014-05-13 11:41:42 +02:00
Sebastian Dröge
a76832451d dvbsrc: Don't free string we're still using
CID 1213780
2014-05-12 10:04:16 +02:00
Reynaldo H. Verdejo Pinochet
a39c3bd01b dvbsrc: drop C++ style comments
This patch builds on previous work done by
Fabrizio (Misto) Milo <mistobaan@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=641204
2014-05-10 18:30:30 -04:00
Reynaldo H. Verdejo Pinochet
d2138beb18 dvbsrc: fix up error reporting
This patch builds on previous work done by
Fabrizio (Misto) Milo <mistobaan@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=641204
2014-05-10 18:30:24 -04:00
Sebastian Dröge
90643c696f mfc: Remove mfc plugin, it is obsoleted by the v4l2videodec element from gst-plugins-good 2014-05-03 13:12:40 +02:00
Nicolas Dufresne
4e9036690c decklink: Don't fail if HW does not have all interfaces
This patch completes 1c1cc73a3b. These
changes where accidentally pushed as a separate patch with wrong commit
message.

https://bugzilla.gnome.org/show_bug.cgi?id=7273
2014-04-27 09:34:39 -04:00
Tim-Philipp Müller
d5a0ace347 Revert "y4mdec: check for VIDEO meta instead of CROP meta"
This reverts commit 68309bd215.

Commit message and files changed do not match.
2014-04-27 13:11:03 +01:00
Andoni Morales Alastruey
fc02ec2087 avfassetsrc: downgrade rank to SECONDARY in OS X 2014-04-24 12:28:17 +02:00
Andoni Morales Alastruey
d234bee52f avfassetsrc: rename references to iOS 2014-04-24 12:28:17 +02:00
Matthieu Bouron
2f0aad7158 iosavassetsrc: rename element to avfassetsrc
https://bugzilla.gnome.org/show_bug.cgi?id=728249
2014-04-24 12:28:17 +02:00
Matthieu Bouron
ecf765635b iosavassetsrc: Port to 1.0
Also enables this element on OSX >= 10.7.

https://bugzilla.gnome.org/show_bug.cgi?id=728249
2014-04-24 12:28:17 +02:00
Andoni Morales Alastruey
9fec222b5a applemedia: add new source/decoder element for iOS assets
https://bugzilla.gnome.org/show_bug.cgi?id=728249
2014-04-24 12:28:16 +02:00
Matthieu Bouron
e728ee8208 coremediabuffer: handle stride alignment
Handle stride alignment through the use of the video meta API. The
code is based on the corevideobuffer implementation.

If the video meta API is not supported and the underlying buffer
contains padding, the core media buffer is copied to a system memory
buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=727885
2014-04-24 12:27:59 +02:00
Matthieu Bouron
c6572df9ff avfvideosrc: check if downstream supports the video meta API
Check if downstream supports the video meta API, so we can use it later
with the core media buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=727953
2014-04-24 10:46:51 +01:00
Nicolas Dufresne
1c1cc73a3b decklink: Fix support for HW without output
Devices suitable for decklinksrc may not have any output, hence querying
the input returns NULL. Add support for all cases where
input/output/config may be missing.

https://bugzilla.gnome.org/show_bug.cgi?id=727306
2014-04-23 12:42:44 -04:00
Nicolas Dufresne
68309bd215 y4mdec: check for VIDEO meta instead of CROP meta
This element only need stride support, but checks for CROP_META, which
is a bit too much, even though this works as CROP imply having VIDEO
meta.

https://bugzilla.gnome.org/show_bug.cgi?id=726255
2014-04-23 12:42:44 -04:00
Vincent Penquerc'h
8250a7d531 dvbbasebin: fix test for proper use count balancing
usecount is unsigned, so too many "unuse" will wrap the counter
around and the >= 0 check will always be fine.

It would be much simpler to just make the counter signed, but
moving the checks where the decrements happen allow a mistake
to be detected earlier, and thus easier to debug.

Coverity 1139791
2014-04-21 09:34:46 +01:00
Andoni Morales Alastruey
110c21a136 vtenc: fix complier error using fixed lenght arrays 2014-04-18 20:17:00 +02:00
Edward Hervey
c45b44e309 dvb: Fix if() check
introduced by my previous commit :(
2014-04-16 16:07:17 +02:00
Edward Hervey
d16cc860a3 dvb/camsession: Don't do operations on unexisting sessions
CID #206114
2014-04-16 15:37:57 +02:00
Edward Hervey
1a42aaad47 dvb: Handle socket() failure
CID #206178
2014-04-16 15:32:32 +02:00
Edward Hervey
012b5b8d4a dvbsrc: Handle failure to get statistics from the device
Check the ioctl return value and don't output bogus values.

CID #206016
2014-04-16 15:23:57 +02:00
Edward Hervey
c947e820cf dvbsrc: Don't close a fd that wasn't open
We are handling the failure cases in this block where the open failed

CID #206179
2014-04-16 15:18:44 +02:00
Edward Hervey
bf043208cd dvbsrc: Don't try to access NULL string
And refactor the pid setting code to be in its own function for clarity

CID #206374
2014-04-16 15:17:03 +02:00
Edward Hervey
c400eef377 dvbsrc: Handle symbols added in minor version 7 and 8
Some symbols were re-defined in minor v8 (GO TEAM BACKWARDS COMPATIBLE!)

Some symbols were added in minor v7

https://bugzilla.gnome.org/show_bug.cgi?id=727977
2014-04-11 10:18:32 +02:00
Edward Hervey
0cf6b2be3e dvbsrc: Add comment with all DVB API v5 minor changes
There wasn't a definite list anyway, so I just dove in the kernel
and extract all that information.
2014-04-11 08:18:59 +02:00
Vincent Penquerc'h
c78edf5afc decklink: initialize priv to NULL
While the code that creates the object sets priv to some existing
pointer after new, this ensures any future new not doing this will
hit the various priv!=NULL asserts in the code.

Coverity 1139935
2014-04-09 11:43:23 +01:00
Vincent Penquerc'h
b4d62ce210 mfc: fix left crop change test
It was testing a noop

Coverity 1139643
2014-04-09 11:04:32 +01:00
Vincent Penquerc'h
5feeee62c8 shm: remove dead code
Coverity 1139683
2014-04-09 11:00:22 +01:00
Vincent Penquerc'h
517252e110 mfc: reset "in use" flag on failure to initialize 2014-04-09 10:57:04 +01:00
Vincent Penquerc'h
3aba455c5e mfc: test for allocation failure before dereferencing
Coverity 1139849
2014-04-09 10:56:59 +01:00
Tim-Philipp Müller
3f1eb8ee71 d3dvideosink: post proper error message when window disappears 2014-04-08 17:52:12 +01:00
Tim-Philipp Müller
d576a7b5eb dvb: fix compilation 2014-04-08 16:09:16 +01:00
Vincent Penquerc'h
dd77b7ad79 dvb: reject too long socket paths
Coverity 206004
2014-04-08 15:27:40 +01:00
Xavi Artigas
e12646f30a directsoundsrc: Fix critical due to missing debug category initialization
https://bugzilla.gnome.org/show_bug.cgi?id=727812
2014-04-08 13:39:22 +02:00
Sebastian Dröge
c84278ae04 d3dvideosink: Only pass a dest rectangle if set, otherwise pass NULL
Call with an uninitialized rectangle will cause errors.

https://bugzilla.gnome.org/show_bug.cgi?id=714998
2014-04-02 23:10:01 +02:00
Andoni Morales Alastruey
86e96cfdc6 winks: port to 1.0
https://bugzilla.gnome.org/show_bug.cgi?id=702041
2014-03-15 15:34:29 +01:00
Stefan Ringel
fd8bda1c03 dvbsrc: mpegts: change bandwidth to DVBv5 values
Signed-off-by: Stefan Ringel <linuxtv@stefanringel.de>

https://bugzilla.gnome.org/show_bug.cgi?id=725463
2014-03-15 18:33:18 +01:00
Sebastian Dröge
cba13ef301 atdec: Add some more debug output 2014-03-11 15:33:26 +01:00
Sebastian Dröge
fa8a7d7659 atdec: Implement draining properly 2014-03-11 15:33:26 +01:00
Sebastian Dröge
53ab9c6613 atdec: First dequeue a buffer before enqueueing anything from the queue
Required for offline rendering according to the docs. wtf.
2014-03-11 15:33:26 +01:00
Sebastian Dröge
f331d3159f atdec: Keep track of the current position
It's required to set a valid sample time for decoding on iOS.
2014-03-11 15:33:26 +01:00
Sebastian Dröge
8d8b3c0401 atdec: Always try to pull one decoded frame out of the queue
... instead of doing magic calculations with the buffer duration.
2014-03-11 15:33:25 +01:00
Sebastian Dröge
41b2cca8fc atdec: Handle errors in handle_frame() properly 2014-03-11 15:33:25 +01:00
Sebastian Dröge
dfe476c444 atdec: Call AudioQueueReset() for flushing
AudioQueueFlush() is for draining all remaining data.
2014-03-11 15:33:25 +01:00
Sebastian Dröge
1c13e513c9 atdec: Set correct number of frames for MP3 2014-03-11 15:33:25 +01:00
Sebastian Dröge
2d8b195911 atdec: Initialize the audio description with zeroes 2014-03-11 15:33:25 +01:00
Sebastian Dröge
a43db678c1 atdec: Set the correct layer depending on the MP3 caps 2014-03-11 15:33:25 +01:00
Andres Gomez
2129b4739b wininet: "iradio-mode" property defaults to TRUE
As per discussed in bug #725383, it doesn't make much sense to default
to FALSE in the "iradio-mode" property. Better, let's sent the header
by default and just ignore headers that are not understood, if so.

https://bugzilla.gnome.org/show_bug.cgi?id=725659
2014-03-05 20:28:04 +01:00
Sebastian Dröge
22b4223c86 configure: Rename all variables related to the winks plugin
It does not make sense to call them after directshow if they
are for the winks plugin only.

https://bugzilla.gnome.org/show_bug.cgi?id=724100
2014-02-16 10:09:18 +01:00
Sebastian Dröge
5b23cf694c amcaudiodec: Calculate number of samples per frame for MP3 and use that
Some audio decoders (at least the MP3 decoder on MTK based devices) outputs
raw audio in batches of multiple audio frames. We need to handle that
properly, otherwise the base class will be kind of unhappy.
2014-02-14 12:51:50 +01:00
Sebastian Dröge
aeeeedd7c7 amcaudiodec: Error out if we get an invalid raw audio buffer size 2014-02-14 12:51:50 +01:00
Sebastian Dröge
cea218db6f amcvideodec: Store return value of gst_caps_merge_structure()
The inputs are both invalid afterwards.
2014-02-14 12:51:50 +01:00
Sebastian Dröge
faf48d26bf amcvideodec: Release buffer to Android if allocating output failed 2014-02-14 12:51:50 +01:00
Sebastian Dröge
2476b926b1 amcaudiodec: Release buffer back to Android if allocating output fails 2014-02-14 12:51:50 +01:00
Aleix Conchillo Flaqué
fd27bdf5f0 shm: call close() after shutdown()
shutdown() doesn't close the file descriptor so we leak sockets if we
don't call close().

https://bugzilla.gnome.org/show_bug.cgi?id=724077
2014-02-10 18:53:44 -05:00
Aleix Conchillo Flaqué
f5a1ccd0de shm: use shutdown() instead of close()
we make sure both ends get notified when the socket is closed by using
shutdown() instead of close().

https://bugzilla.gnome.org/show_bug.cgi?id=724077
2014-02-10 18:03:18 -05:00
Руслан Ижбулатов
ad92dfc7b4 winks: Make headers known to automake
Fixes #724003
2014-02-10 09:32:49 +01:00
Sebastian Dröge
6d7fcc6890 vdpau: Fix comparison compiler warning
error: comparison of constant -1 with expression
of type 'const GstVideoFormat' is always false
2014-02-08 18:56:06 +01:00
Sebastian Dröge
cde8be156f uvch264src: Fix unitialized variable compiler warnings 2014-02-08 18:54:58 +01:00
Edward Hervey
72127a85f5 applemedia: Fix libtool usage
--tag=CC is needed for static build
2014-02-06 16:17:39 +01:00
Sebastian Dröge
30d80bf658 androidmedia: Don't handle FLUSHING or NOT_LINKED as error
And also just stop the task for FLUSHING.
2014-01-25 17:41:18 +01:00
Alexey Chernov
d96999328a d3dvideosink: First destroy the window, then unregister the class
It's impossible to create another pipeline with d3dvideosink after disposing
the previous one due to some problem in d3dvideosink. The message is: "Unable
to register Direct3D hidden window class".

I've evaluated the problem and it's that UnregisterClass() in working thread is
called before DestroyWindow() and UnregisterClass() does nothing.

https://bugzilla.gnome.org/show_bug.cgi?id=722622
2014-01-21 09:45:07 +01:00
Sebastian Dröge
0d794993fb applemedia: Actually the enc/decbins are not used anywhere currently
Code is commented out.
2014-01-20 10:38:16 +01:00
Sebastian Dröge
1107e158f7 applemedia: Fix build on iOS and probably also on OSX
The video toolbox is not available on iOS, and also on OSX
we should probably build all source files that are used for
it.

https://bugzilla.gnome.org/show_bug.cgi?id=722590
2014-01-20 10:34:57 +01:00
Jorge Zapata
c9abe8c50d amcvideodec: Add the divx variant for mpeg4 video
Looks like all the mpeg4 video decoders also accept the divx
variants. So we better add those caps too

https://bugzilla.gnome.org/show_bug.cgi?id=711163
2014-01-14 20:49:24 +01:00
Olivier Crête
77b339bf5c shmsink: Document that socket-path may change 2014-01-03 11:18:06 -05:00
Olivier Crête
93abc06ae8 shmsink: Change default shm size to 64 MiB
The original size of 256k was too small for anything where
one would want to use shm. If the buffer's size needs to be limit, it is
better to use buffer-time in most cases anyway.
2014-01-03 11:16:42 -05:00
Stefan Ringel
cd11a38bf0 dvbsrc: Add dvb-s2, dvb-t2 support
https://bugzilla.gnome.org/show_bug.cgi?id=709414
2014-01-03 11:26:26 +01:00
Stefan Ringel
e34df02115 dvbsrc: Change from deprecated frontend type field to DTV_ENUM_DELSYS
-add delsys property
-add delivery system capability to the gstreamer adapter structure
-ready for add new delivery systems

Application must ask the adapter structure to know which delivery systems are avaible.
The property delsys must be set.

https://bugzilla.gnome.org/show_bug.cgi?id=709414
2014-01-03 11:26:12 +01:00
Jan Schmidt
1df82fc14f androidmedia: Add new color format, and enhance debug output
Add a new color format seen on my Galaxy S3
(OMX_SEC_COLOR_FormatNV12Tiled = 0x7fc00002) to the table,
but don't actually implement it - the decoder doesn't choose it.

Remove an assert that makes the plugin fail noisily and take the app down
if it sees a color format it doesn't recognise (just skip the codec instead)

Modify the debug output when plugin scanning to print color format info to
make this sort of thing easier in the future.
2013-12-31 23:24:06 +11:00
Víctor Manuel Jáquez Leal
dedb95dc6f mfc: fix input dequeue for odroid
https://bugzilla.gnome.org/show_bug.cgi?id=721027
2013-12-27 15:52:03 +01:00
Alessandro Decina
cd90748c5b applemedia: vtdec: set the correct stride in the video meta 2013-12-22 17:48:25 +01:00
Alessandro Decina
7a8d918472 applemedia: atdec: fix aac decoding on Mavericks 2013-12-22 17:48:25 +01:00
Alessandro Decina
cf2cf20cc3 applemedia: corevideobuffer: fix for planar formats 2013-12-19 08:59:39 +01:00
Alessandro Decina
a75ddf446b applemedia: vtdec: remove silly stride requirement
This is legacy from the 0.10 times, and it isn't clear how it was useful back
then also.'
2013-12-19 08:59:39 +01:00
Davide Bertola
72e989f2da applemedia: vtdec: Enable hardware accelerated decoding on 10.9 2013-12-18 10:28:17 +01:00