Commit graph

1985 commits

Author SHA1 Message Date
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