Commit graph

1118 commits

Author SHA1 Message Date
Wim Taymans
52d48bb142 Merge branch 'master' into 0.11 2011-08-17 19:01:39 +02:00
Alessandro Decina
b6747292e0 qtkitvideosrc: get the framerate from caps
...and configure QTKit accordingly. Hardcoding to 30fps was pretty -bad.
2011-08-15 02:10:26 +02:00
Edward Hervey
8132a5d46e decklink: Add gstdecklink.h to list of headers 2011-08-04 11:29:58 +02:00
Wim Taymans
2ba07782cd Merge branch 'master' into 0.11 2011-08-04 09:40:46 +02:00
Wim Taymans
01b9b5002f Merge branch 'master' into 0.11
Conflicts:
	common
	configure.ac
	gst/colorspace/colorspace.c
	gst/colorspace/colorspace.h
	gst/colorspace/gstcolorspace.c
2011-08-04 09:36:07 +02:00
David Schleef
2b5e8db968 decklink: Add audio-input property 2011-08-03 13:39:33 -07:00
Tim-Philipp Müller
1972c26bde vdpau: fix some variable-set-but-unused compiler warnings 2011-07-14 23:45:52 +01:00
Olivier Crête
d369f620de dvb: Fix set-but-unused warnings 2011-07-12 18:15:14 -04:00
David Schleef
5056c34761 decklink: HD modes are square pixels 2011-07-07 11:29:37 -07:00
David Schleef
ab1e013bb8 decklink: properly set up analog input 2011-07-04 16:49:00 -07:00
David Schleef
ae49fa1f78 decklink: Add more modes 2011-07-04 16:48:59 -07:00
Raimo Järvi
59aaf71b0b d3dvideosink: Fix configure check and makefiles
Fixes bug #652035.
2011-06-25 18:08:45 -07:00
David Schleef
571e95cf10 decklink: update DeckLink API wrappers 2011-06-20 12:49:16 -07:00
David Schleef
16a49a3617 decklink: Add connection type 2011-06-20 12:49:16 -07:00
Rafael Diniz
bb4844b29e decklinksink: Add audio support
Signed-off-by: David Schleef <ds@schleef.org>
2011-06-20 12:49:16 -07:00
David Schleef
1faf410ca3 decklink: Add various features
Better mode support, input source property, audio support.
2011-06-20 12:49:16 -07:00
David Schleef
69c930565f decklink: remove unused code 2011-06-20 12:49:16 -07:00
David Schleef
1e1c16150b decklink: reindent 2011-06-20 12:49:16 -07:00
Olivier Crête
26f7a1ca66 shm: Improve documentation of internal shmpipe 2011-06-16 19:06:03 -04:00
Wim Taymans
a2b7a672b8 Merge branch 'master' into 0.11
Conflicts:
	android/aacparse.mk
	android/amrparse.mk
	android/h264parse.mk
	android/metadata.mk
	android/qtmux.mk
	android/sdpelem.mk
	configure.ac
	gst/qtmux/gstqtmux.c
	win32/common/config.h
2011-06-15 16:06:36 +02:00
Tim-Philipp Müller
a6c4f3ed4e wininetsrc: don't use G_CONST_RETURN
It's going to be deprecated really soon.
2011-06-13 11:12:36 +01:00
Levente Farkas
be60b7d0de directdrawsink: lower rank to secondary
Signed-off-by: David Schleef <ds@schleef.org>
2011-06-05 13:56:41 -07:00
Levente Farkas
be87d62fde d3dvideosink: compile fix
Signed-off-by: David Schleef <ds@schleef.org>
2011-06-05 13:41:46 -07:00
David Schleef
bd30c28315 directdrawsink: Handle pixel-aspect-ratio
Fixes: #651779.  From Raimo Järvi.
2011-06-04 19:01:20 -07:00
David Schleef
655e511a5c d3dvideosink: Add plugin
Fixes #651782.  Patch from various authors, by way of ossbuild.
2011-06-04 19:01:16 -07:00
David Schleef
76fad77149 vdpau: remove old glib compatibility code 2011-06-04 14:09:30 -07:00
Debarshi Ray
335293bf50 Remove unused but set variables
This is needed to satisfy the new -Wunused-but-set-variable added in
GCC 4.6: http://gcc.gnu.org/gcc-4.6/changes.html
2011-06-04 20:26:02 +01:00
Martin Storsjo
d536b73e25 qtwrapper: Decode audio until all input data is consumed
The special return value is returned from our buffer callback
when all input data has been consumed.
2011-05-30 08:46:11 +02:00
Martin Storsjo
02fc41fde5 qtwrapper: Replace the hackish 42 magic number with a define 2011-05-30 08:46:04 +02:00
Julien MOUTTE
efd840bbb7 dshowdecwrapper: Fix COM initialization
Fixes bug #625190.
2011-05-30 08:45:01 +02:00
Julien MOUTTE
378a8d94dc dshowdecwrapper: Fix element registration using data in the type instead of a global 2011-05-30 08:45:01 +02:00
Vincent Génieux
5616efb0f8 dvbsrc: Add timeout property and use GstPoll instead of poll
This allows to use much higher timeout values because GstPoll
is interruptible and keeps the number of wakeups during signal
loss lower.

Fixes bug #608171.
2011-05-23 16:49:55 +02:00
Stefan Kost
ed0bdc4910 camapplicationinfo: fix possible array overrun 2011-05-20 13:30:40 +03:00
Olivier Crête
58ee65fe20 shm: Make gcc 4.6 happy
Remove warnings due to initialized but never used warnings
2011-05-18 16:49:26 -04:00
Brian Gitonga Marete
1962b31046 decklink: Change counters to 64 bit unsigned integers. 2011-05-18 12:07:13 -07:00
Quentin Smith
38681bf1e0 avc: avcsrc is always enabled 2011-05-18 12:06:38 -07:00
Quentin Smith
708e96bef4 avc: Include 200 bus cycles in each buffer (about 300 TS packets) 2011-05-18 12:06:38 -07:00
Quentin Smith
66956d1c96 avc: Emit a single buffer per callback 2011-05-18 12:06:38 -07:00
Quentin Smith
edc93f89e1 avc: Track the number of enqueued and dequeued packets 2011-05-18 12:06:38 -07:00
Quentin Smith
5ce26c5cc7 avc: Dump timestamp information 2011-05-18 12:06:38 -07:00
Quentin Smith
004f2541e4 avc: Save AVC objects in the GstAVCSrc object
and stop them when the pipeline is stopped
2011-05-18 12:06:38 -07:00
Quentin Smith
7ac4cd7ef5 avc: Cycle and packet are unsigned 2011-05-18 12:06:38 -07:00
Quentin Smith
9f221469ec avc: avcsrc is a live source 2011-05-18 12:06:38 -07:00
Quentin Smith
8fe0393105 avc: Look in AVCVideoServices for headers 2011-05-18 12:06:38 -07:00
David Schleef
84fb75ce86 avc: Add AVC Video Services plugin for OS/X 2011-05-18 12:06:37 -07:00
Stefan Kost
79e3b5b4bb various: fix author tag in element details 2011-05-18 10:31:38 +03:00
Pino Toscano
01b7b10d0b shm: Don't use PATH_MAX
PATH_MAX is not defined on GNU Hurd and others. Also fix
format string.
2011-05-16 09:07:57 +02:00
Alessandro Decina
e21e8ddd4e applemedia: bump the rank of qtkitvideosrc to PRIMARY 2011-05-15 10:04:50 +02:00
Sebastian Dröge
6acbe18943 dvb: Use the user config dir instead of the cache dir for the channels configuration 2011-05-03 09:55:48 +02:00
Philippe Normand
27c761f43b dvb: moved dvb-channels.conf to $XDG_CACHE_HOME 2011-05-03 09:54:53 +02:00
Sebastian Dröge
2f74b2d90e decklink: Add to SUBDIRS 2011-04-28 10:04:18 +02:00
Sebastian Dröge
efc356a2b5 decklink: Remove unused/unneeded CFLAGS/LIBS and move $(LIBM) to LIBADD 2011-04-18 11:46:23 +02:00
Sebastian Dröge
224bb96a53 linsys: Link with libgstbase for basesink/basesrc
And remove empty and unused variables.
2011-04-18 11:46:05 +02:00
Sebastian Dröge
8ef0268b9c decklink: Dist all headers and put them in noinst_HEADERS 2011-04-17 19:16:45 +02:00
Sebastian Dröge
c220e120d7 linsys: Dist all headers and put them in noinst_HEADERS 2011-04-17 19:16:44 +02:00
Reynaldo H. Verdejo Pinochet
290d598748 Remove audioflingersink
Remove audioflingersink, it's in gst-android now.
2011-04-14 16:54:18 +01:00
Thibault Saunier
17fd7ebcb4 android: make it ready for androgenizer
Remove the android/ top dir
Fixe the Makefile.am to be androgenized

To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 07:27:11 +02:00
Sebastian Dröge
e30f89fdef vdpau: Fix uninitialized variable compiler warning 2011-04-09 13:40:37 +02:00
Haakon Sporsheim
5c0922a82d dshowvideosink: update for latest GstXOverlay changes
From xwindow_id to window_handle.

https://bugzilla.gnome.org/show_bug.cgi?id=646955
2011-04-07 23:10:01 +01:00
Vincent Penquerc'h
a34108899e shmsink: ensure gst_poll_wait is called first on descriptors
We need to call gst_poll_wait before calling gst_poll_* status
functions on that new descriptor, so restart the loop, so _wait
will have been called on all elements of self->poll, whether
they have just been added or not. */
2011-04-07 10:03:45 +02:00
Olivier Crête
e30451a0c3 shm: Make default perm u+rw g+r for shm area 2011-03-31 16:21:11 -04:00
Carl-Anton Ingmarsson
b98924208b vdpausink: fix bug where we didn't setup vdpau on a user set window 2011-03-27 20:09:52 +02:00
Carl-Anton Ingmarsson
bd20e5d077 vdpau: fixup GstFlowReturn handling
Previously the different decoders would discard errounous GstFlowReturns coming
from downstream. Now we properly return these further upstream so that we
properly error out on eg. negotiation problems.
2011-03-27 19:51:31 +02:00
Carl-Anton Ingmarsson
5d61545a82 vdpau: small indentation fix 2011-03-27 19:48:20 +02:00
Carl-Anton Ingmarsson
d60c67b2c2 vdpaumpegdec: don't ignore return value of gst_base_video_decoder_finish_frame 2011-03-27 19:48:20 +02:00
Tim-Philipp Müller
f09f27a761 dshow: fix list iteration code 2011-03-27 17:42:56 +01:00
David Schleef
a5cb7912f1 decklink: Fix win32 build 2011-03-24 16:16:38 -07:00
David Schleef
8961f6a900 decklink: Add decklink plugin
Source and sink elements for BlackMagic DeckLink SDI cards.
2011-03-23 21:33:49 -07:00
David Schleef
e319b82842 linsys: Add plugin for Linear Systems SDI boards 2011-03-23 21:33:48 -07:00
Olivier Crête
81b0d87746 shm: Don't use "sun" as a variable name, breaks on Solaris
Seems like the Solaris compiler has -Dsun=1, so don't use
sun as a variable name

Patch by Tim Mooney <mooney@dogbert.cc.ndsu.nodak.edu>

https://bugzilla.gnome.org/show_bug.cgi?id=645053
2011-03-17 16:41:52 -04:00
Sjoerd Simons
1634a9f262 shmsink: Keep shmsink referenced while there are still buffers around 2011-03-16 18:53:27 +00:00
Sjoerd Simons
ca9d60702f shm: Allow ShmPipe to save a data pointer for applications 2011-03-16 18:53:19 +00:00
Sjoerd Simons
f6efb3e397 shm: Keep the ShmPipe alive as long as there are blocks left 2011-03-16 18:53:10 +00:00
Olivier Crête
a646afcf88 shmsrc: Only connect to sink in PLAYING in live mode 2011-03-16 18:52:57 +00:00
Olivier Crête
a2b6dfa37e shmsrc: Keep GstPoll for whole src lifetime 2011-03-16 18:52:57 +00:00
Wim Taymans
92c192852a vdpau: disable until someone ports it 2011-03-04 13:39:43 +01:00
Mark Nauwelaerts
f96dab44cf directdrawsink: avoid aspect-ratio borders overlying other windows
Fixes #632056.
2011-02-08 18:02:29 +01:00
Mark Nauwelaerts
edb15598ed directdrawsink: avoid rendering to invalid area
Based on patch by Havard Graff <havard.graff@tandberg.com>

Fixes #594280.
2011-02-08 18:02:26 +01:00
Tim-Philipp Müller
14375582fa dvbsrc: fix up enum nick names
https://bugzilla.gnome.org/show_bug.cgi?id=591651
2011-02-02 18:41:39 +00:00
Sebastian Dröge
36e037be67 vdpau: Initialize some variables to make gcc 4.6 happy 2011-01-27 17:32:49 +01:00
Rob Clark
f356c4f7de dvb: fix build errors on macosx
fixes the following compile errors:

cc1: warnings being treated as errors
camswclient.c: In function 'cam_sw_client_open':
camswclient.c:81: warning: implicit declaration of function 'strncpy'
camswclient.c:81: warning: incompatible implicit declaration of built-in function 'strncpy'
camswclient.c:89: warning: implicit declaration of function 'strerror'
camswclient.c:89: warning: nested extern declaration of 'strerror'
camswclient.c:89: warning: format '%s' expects type 'char *', but argument 9 has type 'int'
camswclient.c: In function 'send_ca_pmt':
camswclient.c:129: warning: implicit declaration of function 'memcpy'
camswclient.c:129: warning: incompatible implicit declaration of built-in
function 'memcpy'

gstdvbsrc.c:48:19: error: error.h: No such file or directory

Signed-off-by: Rob Clark <rob@ti.com>
2011-01-03 17:12:44 -06:00
Stefan Kost
e0e679dba9 README: fix the example pipeline
Fix the obvious outdated parts. Still this README looks outdated and should be
updated or removed.
2011-01-03 18:15:43 +02:00
Leo Singer
369f41913c applemedia: fix compiler warning: redundant declaration of 'parent_class'
GST_BOILERPLATE_FULL declares parent_class as well.

https://bugzilla.gnome.org/show_bug.cgi?id=637532
2010-12-18 21:32:36 +00:00
Francis Rammeloo
6792b0fb16 gdiscreencapsrc: fix memory leak
Structure members of ICONINFO struct filled by GetIconInfo() must
be deleted when no longer needed according to the API reference.

https://bugzilla.gnome.org/show_bug.cgi?id=611428
2010-12-13 23:17:56 +00:00
Ole André Vadla Ravnås
f3d8e3920d applemedia: only enqueue buffers in the VideoToolbox callbacks
These callbacks may fire from any thread, hence we should only enqueue
buffers and let the streaming thread take care of the rest as soon as
the blocking encode or decode operation has finished.
2010-12-10 04:07:05 +01:00
Ole André Vadla Ravnås
f7e5878c9e applemedia: bring back Leopard compatibility
At least as far as miovideosrc is concerned. Turns out that CoreVideo's
CVPixelBufferGetIOSurface is not present in Leopard's version of CoreVideo.
We solve this by making it possible for symbols to be marked as optional.
2010-12-10 04:06:59 +01:00
Christian Berentsen
6cf92cd25c winks: fix framerate fraction range mapping
Min and max may be slightly different but compress to the same fraction.
2010-12-10 04:06:53 +01:00
Alessandro Decina
0b6e0b7b13 qtkitvideosrc: reset the queue condition to NO_FRAMES in unlockStop.
Fixes a segfault in create: when going PLAYING -> PAUSED -> PLAYING.
2010-12-09 12:04:10 +01:00
Alessandro Decina
ec6c307334 qtkitvideosrc: run the mainRunLoop for a while if not running.
QTCaptureSession::addInput and QTCaptureSession::addOutput call
NSObject::performSelectorOnMainThread internally so they need the mainRunLoop to
run at least for a while to complete.
2010-12-09 11:55:57 +01:00
Benjamin Gaignard
b4ff7c94d7 sys: Add android audioflingersink 2010-12-03 17:46:27 +01:00
Alessandro Decina
536a30f2df applemedia: don't use the deprecated g_strcasecmp function.
Replace g_strcasecmp with g_ascii_strcasecmp.
2010-12-01 23:21:33 +01:00
Alessandro Decina
aae72680bd Fix compiler warnings with gcc 4.2.1 on OSX. 2010-12-01 23:20:36 +01:00
Olivier Crête
ecb7674640 shm: Don't pass the ShmPipe to the function closing the shm area 2010-11-24 19:12:10 -05:00
Olivier Crête
56c4a9b692 shm: Use the right counter when freeing buffers 2010-11-24 19:12:10 -05:00
Olivier Crête
a770d7a707 shmalloc: Manually decide to use GLib or not in the shmalloc
So make it easier for embedders to use it with or without Glib
2010-11-24 19:12:10 -05:00
Olivier Crête
01f1cc20d7 shm: Remove duplicated arguement 2010-11-24 19:12:10 -05:00
Olivier Crête
70b8d2ab93 shm: Fix socket leak on connect() error 2010-11-24 19:12:10 -05:00
Olivier Crête
225bc1dd0b shm: sp_client_recv returns negative on error, so make the retval signed 2010-11-24 19:12:10 -05:00
Olivier Crête
2aaf51af49 shm: Rename confusingly named variable 2010-11-24 19:12:10 -05:00
Olivier Crête
de9905db03 shm: Change permissions on old shm areas too
Change the permissions on old shm areas
2010-11-24 19:12:10 -05:00
Olivier Crête
0b99919c55 shm: Use the macro for the last error too 2010-11-24 19:12:10 -05:00
Olivier Crête
a533c30ab8 shm: Use "ablock" for all ShmAllocBlock variables
Use the ablock variable name for ShmAllocBlocks and block for
ShmBlock
2010-11-24 19:12:10 -05:00
Olivier Crête
b14a0d64ec shm: Add more comments 2010-11-24 19:12:10 -05:00
Youness Alaoui
768319b866 shm: stylist improvements 2010-11-24 19:12:10 -05:00
Youness Alaoui
a7b27bc2d0 shm: Explain some fields
Explain what some of the fields in the allocator actually mean
2010-11-24 19:12:10 -05:00
Andoni Morales Alastruey
7c43c2fa06 dvbbasebin: Add TDT to the initial pids filter for dvbsrc. Fixes #635200. 2010-11-19 18:04:12 +01:00
Ole André Vadla Ravnås
abdb30c567 celvideosrc: fix nasty deadlock
We cannot call any CMBufferQueue functions while holding the lock that
our callback also depends on. So now we make use of CMBufferQueue's
trigger API in order to get notified when the queue has data.
2010-11-12 00:44:42 +01:00
Ole André Vadla Ravnås
de76e9fdb6 cmapi: cover CMBufferQueue's trigger API 2010-11-12 00:44:42 +01:00
Ole André Vadla Ravnås
e4db4257d5 celvideosrc: unlock should also notify
Otherwise we depend on being woken up by the CoreMedia queue getting
its next buffer.
2010-11-12 00:44:42 +01:00
Ole André Vadla Ravnås
ebd2a6d6e9 applemedia: don't push synchronously from callback
The codec that called us might be holding locks to shared resources, so
we should never push downstream from within its buffer callback.

Note that a GstBufferList is not used here because we need to preserve
the buffer metadata held by our GstBuffer subclasses.
2010-11-11 00:22:31 +01:00
Ole André Vadla Ravnås
6b63954f63 vtenc: bump H.264 level from 1.3 to 3.0
This should be turned into a property.
2010-11-11 00:22:31 +01:00
Ole André Vadla Ravnås
6e909dc474 celvideosrc: add basic device selection support 2010-11-11 00:22:31 +01:00
Ole André Vadla Ravnås
2382f10b98 cvapi: add wrapper for IO surface access
To be used in a future video sink for zero-copy rendering.
2010-11-11 00:22:31 +01:00
Ole André Vadla Ravnås
420943972c celapi: add capture port type constants 2010-11-11 00:22:31 +01:00
Ole André Vadla Ravnås
d10e029f51 applemedia: biplanar is actually NV12, not I420
D'oh!
2010-11-08 23:58:25 +01:00
Ole André Vadla Ravnås
d865feca82 vtenc: remove keyframe enforcement workaround
Was only needed for old iOS where the H.264 encoder didn't support
kVTEncodeFrameOptionKey_ForceKeyFrame.
2010-11-08 23:58:25 +01:00
Ole André Vadla Ravnås
abba3a4126 cvapi: add a few extra bits of wrapping 2010-11-08 23:58:25 +01:00
Ole André Vadla Ravnås
b4654f537f applemedia: lock CVPixelBuffer read-only
As per Apple's docs, this may improve performance by avoiding redundant
invalidations of existing caches of the buffer contents.
2010-11-08 23:58:24 +01:00
Ole André Vadla Ravnås
6428d306ea celvideosrc: put planar first in template caps 2010-11-08 14:02:50 +01:00
Ole André Vadla Ravnås
c2672f71cd applemedia: improve vtenc/vtdec performance
Profiling of H.264 encode and decode revealed that conversions
between packed and planar were happening behind the scenes.

Hence we now choose I420 instead of YUY2.
2010-11-08 14:02:50 +01:00
Ole André Vadla Ravnås
1eb9190ad9 celvideosrc: measure fps when statistics is enabled
Also refactor timestamping slightly.
2010-11-05 16:52:58 +01:00
Ole André Vadla Ravnås
b7368c34fd celvideosrc: update to new Celestial and MediaToolbox APIs
This means celvideosrc is no longer compatible with iOS 3.x.
2010-11-05 15:32:37 +01:00
Ole André Vadla Ravnås
bf095e891f celvideosrc: fix debug category description 2010-11-05 15:32:37 +01:00
Ole André Vadla Ravnås
517f3a75c2 celapi: update to reflect new API on iOS 4.x
Also add remaining property constants for device and stream.
2010-11-05 15:32:37 +01:00
Ole André Vadla Ravnås
da5da05540 mtapi: update to reflect new API on iOS 4.x
Also add remaining property constants for device and stream.
2010-11-05 15:32:37 +01:00
Ole André Vadla Ravnås
8402211bac applemedia: make video source element details consistent
Inspired by the v4l2src element details.
2010-11-04 19:27:25 +01:00
Ole André Vadla Ravnås
445d7502c4 applemedia: consistently use gst_element_class_set_details_simple 2010-11-04 19:27:25 +01:00
Ole André Vadla Ravnås
5d71ad0d52 celvideosrc: update e-mail address 2010-11-04 19:27:25 +01:00
Ole André Vadla Ravnås
44df8abea8 applemedia: rename iphonecamerasrc to celvideosrc
This is in order to improve consistency with the other three sources.
2010-11-04 19:27:25 +01:00
Ole André Vadla Ravnås
8b22f855ec avfvideosrc: don't explicitly empty the buffer queue
We're holding the only reference to it so there's no need to explicitly
empty it right before letting go of our reference.
2010-11-04 17:58:59 +01:00
Ole André Vadla Ravnås
89e5b60130 avfvideosrc: make buffer offset start from zero 2010-11-04 17:52:05 +01:00
Ole André Vadla Ravnås
86e2539816 qtkitvideosrc: implement zero-copy by using buffer-factory
This means we'll wrap each CoreVideo buffer inside a GstBuffer instead of
making a copy.
2010-11-04 17:52:05 +01:00
Ole André Vadla Ravnås
835b2988b6 bufferfactory: add support for wrapping CVBuffer 2010-11-04 17:52:05 +01:00
Ole André Vadla Ravnås
3a44d4c1f9 qtkitvideosrc: fix up refcounting
Should keep a strong reference to the device, but we don't need to manage
the reference count of elements of an NSMutableArray as it takes care of
that for us.
2010-11-04 17:52:04 +01:00
Ole André Vadla Ravnås
b39609b405 qtkitvideosrc: simplify timestamping algorithm
Aligning timestamps on duration boundaries, skipping frames and so forth
are clearly things that fall outside the scope of a video source.
2010-11-04 17:52:04 +01:00
Ole André Vadla Ravnås
3ba76f825d applemedia: add new iOS video source based on AVFoundation
This element makes use of the documented AVFoundation framework made
available starting with iOS 4.0, and hence this means we can finally
capture video using a public API.
2010-11-04 14:32:10 +01:00
Ole André Vadla Ravnås
50c6e05924 applemedia: fix stream-format caps used for H.264
The stream-format's "avc-sample" member is now called just "avc".
2010-11-04 14:32:09 +01:00
Ole André Vadla Ravnås
b873920eaa applemedia: update e-mail addresses 2010-11-04 14:32:09 +01:00
Ole André Vadla Ravnås
c6b32b42de applemedia: switch vtapi to CFTypeRef style typedefs 2010-11-02 23:14:26 +01:00
Ole André Vadla Ravnås
2e349576eb applemedia: support public version of CoreMedia
Also rename the relevant API so we mirror the public API more closely, and
switch to CoreFoundation CFTypeRef style typedefs. We still support the old
private CoreMedia in order to not break OS X support.

This means that vtenc and vtdec are now compatible with iOS 4.x, and in
theory also future versions of OS X, where this API may turn public like
it has on iOS.
2010-11-02 23:14:26 +01:00
Ole André Vadla Ravnås
cc1c6ee9e3 winks: work around shutdown deadlock
GetOverlappedResult() might never return with some drivers. Time out
after 1000 ms. We cannot really fix this without either:
1) Controlling the streaming thread so we can do CancelIo() from that
   thread.
2) Switch to using IO completion ports.
2010-10-28 17:08:41 +02:00
Ole André Vadla Ravnås
a7a04fe601 winks: remove JPEG validation hack
This should clearly not be done in a video source.
2010-10-28 17:08:41 +02:00
Ole André Vadla Ravnås
35ed06fba2 winks: set PrioritySubClass to KSPRIORITY_NORMAL instead of 1
In order to match the reference implementation.
2010-10-28 17:08:41 +02:00
Ole André Vadla Ravnås
c1d16c4fee winks: retry when KsCreatePin fails with ERROR_NOT_READY
Turns out that the reference implementation does this, hence we need to
mirror this behaviour. This typically happens with hardware that takes
some time to initialize.
2010-10-28 17:08:41 +02:00
Ole André Vadla Ravnås
bb17394e76 winks: improve framerate fraction conversions
* For instance 7.5 fps should be represented as 15/2 instead of 7/1.
* Clamp AvgTimePerFrame and dwBitRate to account for rounding errors.
2010-10-28 17:08:41 +02:00
Ole André Vadla Ravnås
d282a1d380 winks: improve error-handling
Most important part here is special-casing "device busy" so the application
is able to provide better feedback when another application is using the
device.
2010-10-28 17:08:41 +02:00
Ole André Vadla Ravnås
cddfa50d92 winks: performance improvements
* Make the driver write directly into each GstBuffer to avoid memcpy().
* Don't memset() the buffer before reusing it.
* Recycle memory by keeping two spare buffers. Two because the sink
  downstream may keep a ref to the previous buffer.

Note that we align buffers on highest possible byte boundary (4096) so we
don't have to take into account what kind of alignment the driver requires.
2010-10-28 17:08:35 +02:00
Ole André Vadla Ravnås
f2b4d8990d winks: store priv pointer instead of looking it up 2010-10-28 17:08:35 +02:00
Ole André Vadla Ravnås
00bc7860ff winks: post error message on flow-unexpected 2010-10-28 17:08:35 +02:00
Andres Colubri
700f70e7a5 winks: add property probing support 2010-10-28 17:08:35 +02:00