Commit graph

1133 commits

Author SHA1 Message Date
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
Ole André Vadla Ravnås
2cf589b928 winks: sort devices that look like cameras first 2010-10-28 17:08:31 +02:00
Knut Inge Hvidsten
a54972f806 winks: provide guessed pixel-aspect-ratio in caps 2010-10-28 17:08:31 +02:00
Ole André Vadla Ravnås
a5beb0b8ff winks: only try to change state when actually open 2010-10-28 17:08:31 +02:00
Ole André Vadla Ravnås
1f6a6d2430 winks: ignore unsupported formats 2010-10-28 17:08:27 +02:00
Ole André Vadla Ravnås
b88b25ab9b winks: adjust a couple of logging severities
Should clearly not be considered warnings, as they're quite common.
2010-10-28 16:14:34 +02:00
Ole André Vadla Ravnås
0e4e351b83 applemedia: New plugin for Apple multimedia APIs
Provides the following elements:

qtkitvideosrc: OS X video source relying on the QTKit API. Comes with
hard-coded caps as the API does not provide any way of querying for
formats supported by the hardware. Hasn't been tested a lot, but seems
to work.

miovideosrc: OS X video source which uses the undocumented/private
CoreMediaIOServices API, which is also the one used by iChat.
Present on latest version of Leopard and all versions of Snow Leopard.
Has been tested extensively with built-in cameras and TANDBERG's
PrecisionHD USB camera.

vtenc, vtdec: Generic codec wrappers which make use of the undocumented/
private VideoToolbox API on OS X and iOS. List of codecs are currently
hard-coded to H.264 for vtenc, and H.264 + JPEG for vtdec. Can easily be
expanded by adding new entries to the lists, but haven't yet had time to
do that. Should probably also implement probing as available codecs depend
on the OS and its version, and there doesn't seem to be any way to
enumerate the available codecs.

vth264decbin, vth264encbin: Wrapper bins to make it easier to use
vtdec_h264/vtenc_h264 in live scenarios.

iphonecamerasrc: iPhone camera source relying on the undocumented/private
Celestial API. Tested on iOS 3.1 running on an iPhone 3GS. Stops working
after a few minutes, presumably because of a resource leak. Needs some
love.

Note that the iOS parts haven't yet been ported to iOS 4.x.
2010-10-28 15:08:08 +02:00
Tim-Philipp Müller
ad0781a7d4 directdrawsink: port GstXOverlay bits to new API
Don't use deprecated API.
2010-10-12 16:17:54 +01:00
Damien Lespiau
2833cc4375 dvbsrc: Fix example usage, bandwidth=8 not 8MHz
The bandwidth property is enum that takes the values 8, 7, 6, AUTO not
8MHz.
2010-10-10 14:54:45 +01:00
Olivier Crête
b7143de618 shm: Add C++ protection
Add c++ protection in the relevant places
2010-10-08 17:01:29 -04:00
Sebastian Dröge
c5023baecf vdpau: Check return values of the bitreader functions 2010-10-03 15:55:22 +02:00
Edward Hervey
849d3ec371 vdpau: Use the new XOverlay API
Fixes #630254
2010-09-21 16:31:46 +02:00
Sebastian Dröge
51e083fe8d dshowdecwrapper: Don't use GST_FLOW_IS_FATAL()
And don't error out on UNEXPECTED
2010-09-21 12:29:06 +02:00
Carl-Anton Ingmarsson
b2ce3aab96 vdpauvideopostprocess: set new framerate on output caps instead of input caps
It's not allowed to change the caps provided by the setcaps function.

https://bugzilla.gnome.org/show_bug.cgi?id=628326
2010-09-06 12:25:48 +02:00
Carl-Anton Ingmarsson
709a65cddf vdpauh264dec: parse "pixel-aspect-ratio" from stream 2010-09-05 13:52:40 +02:00
Carl-Anton Ingmarsson
5c03466309 vdpau: remove non working unused code from GstBaseVideoDecoder 2010-09-05 13:52:40 +02:00
Carl-Anton Ingmarsson
f2fb66d376 vdpau: GstBaseVideoDecoder set default par to 1/1 2010-09-05 13:52:40 +02:00
Carl-Anton Ingmarsson
885845a678 vdpau: remove gst_base_video_decoder_get_current_frame
we now pass the current frame to GstBaseVideoDecoder::parse_data

also fixup some errors in vdpaumpeg4dec so that it now gives correct output
2010-09-05 13:52:40 +02:00
Carl-Anton Ingmarsson
08e6a65f08 vdpau: rework GstBaseVideoDecoder timestamping
timestamps are now chosen in the following order:
	upstream -> parsed by decoder -> calculated from timestamp offset

we also check the timestamps supplied from upstream/decoder to see if they
atleast is increasing.
2010-09-05 13:52:40 +02:00
Carl-Anton Ingmarsson
624c50bac6 vdpau: fix invalid unref 2010-09-05 13:52:40 +02:00
Carl-Anton Ingmarsson
629b6ff099 vdpaumpeg4dec: fix typo in default_non_intra_quant_matrix 2010-08-09 00:36:01 +02:00
Carl-Anton Ingmarsson
8612a936ec vdpau: add mpeg4 part2 decoder 2010-08-09 00:36:01 +02:00
Tim-Philipp Müller
e2571b9f46 dvbsrc: align actual default values for properties with defaults in param spec
https://bugzilla.gnome.org/show_bug.cgi?id=621404
2010-08-06 11:28:11 +01:00
Carl-Anton Ingmarsson
b6f22c519d vdpau: fix destruction of GstVdpDevice when it failed to open
only close display in finalize and check if vdp_decoder_destroy is available
before we use it
2010-08-06 12:14:30 +02:00
Carl-Anton Ingmarsson
8996b80d62 vdpausink: use separate mutex for device locking
we can't use GST_OBJECT_LOCK since that cause problems when we try to post
errors, due to gst_element_post_message also taking the GST_OBJECT_LOCK
2010-08-06 12:14:30 +02:00
Andoni Morales Alastruey
c2c32fe773 dshowvideosink: close our own window when changing the window id
If we created the window, it needs to be closed after setting a new
window id.

https://bugzilla.gnome.org/show_bug.cgi?id=574290
2010-08-06 10:21:48 +01:00
Raimo Jarvi
7ab007bafe dshowvideosink: allow changing window ID whilst in PLAYING state
https://bugzilla.gnome.org/show_bug.cgi?id=574290
2010-08-06 10:20:19 +01:00
Carl-Anton Ingmarsson
8f47c060d7 vdpau: set back plugin ranks to GST_RANK_NONE
the previous change was not meant to slip in
2010-08-02 18:33:46 +02:00
Carl-Anton Ingmarsson
008a049b20 vdpau: slightly fix GstBaseVideoDecoder timestamping
clear timestamps on flush and properly calculate the frame's end offset
2010-08-02 18:25:43 +02:00
Carl-Anton Ingmarsson
a07cee756a vdpau: init debug category in gst_vdp_video_buffer_get_type 2010-08-02 18:25:43 +02:00
Carl-Anton Ingmarsson
b37869c315 vdpau: add error reporting to device creation 2010-07-30 22:27:49 +02:00
Carl-Anton Ingmarsson
57e05fdc76 vdpau: fix small typo in GstBaseVideoDecoder 2010-07-30 16:54:40 +02:00
Carl-Anton Ingmarsson
2282e9f5df vdpau: use gst_vdp_yuv_to_video_caps in GstVdpVideoSrcPad to transform set caps
this way we'll keep other all other fields in the caps which we didn't take in
account when we manually created the "video/x-vdpau-video" caps
2010-07-30 14:47:43 +02:00
Carl-Anton Ingmarsson
472cdc4c61 vdpau: rename gst_vdp_video_buffer_parse_yuv_caps and move it to gstvdputils.h 2010-07-30 14:44:09 +02:00
Carl-Anton Ingmarsson
726290de21 vdpau: GstVdpOutputSrcPad use gst_pad_alloc when outputting video/x-raw-rgb
we implement "acceptcaps" to prevent us from getting a buffer with different
width and height from what we requested.
2010-07-30 14:07:22 +02:00
Carl-Anton Ingmarsson
ac8dfbea82 vdpau: properly remove "chroma-type" field from transformed caps 2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
aa193a7b43 vdpauvideopostprocess: use GstVdp[Video|Output]BufferPool to cache our buffers
This way we'll reuse the GstVdp[Video|Output]Buffers if they're of the same
size and chroma-type/rgba-format.

Also remove gst_vdp_output_src_pad_negotiate and set a "setcaps" function on
GstVdpOutputSrcPad instead, leaving negotiation to GstVdpVideoPostProcess.
2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
57175ece9e vdpausink: use GstVdpOutputBufferPool to alloc our buffers
This way we'll reuse our GstVdpOutputBuffers if they're of the same size and
rgba-format
2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
c0e1fba089 vdpau: use GstVdpVideoBufferPool in GstVdpVideoSrcPad
We also don't pad_alloc our GstVdpVideoBuffers anymore since we don't support
downstream negotation anyway.
2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
2d9132c590 vdpau: add GstVdpOutputBufferPool
GstVdpVideoOutputPool is a subclass of GstVdpBufferPool that caches
GstVdpOutputBuffers
2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
d82c4acd8a vdpau: add GstVdpVideoBufferPool
GstVdpVideoBufferPool is a subclass of GstVdpBuffer that caches
GstVdpVideoBuffers
2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
7320eedc04 vdpau: add GstVdpBufferPool base class
GstVdpBufferPool will be used to cache GstVdp[Video|Output]Buffers since
creating these can be a costly operation on some hardware.
2010-07-30 11:33:13 +02:00
Carl-Anton Ingmarsson
093fcacc20 vdpau: remove GstVdpOutputSrcPad "template-caps" property
instead we do as GstVdpVideoSrcPad and use the "templ" property of GstPad,
which enable us to change the signature of gst_vdp_output_src_pad_new to match
gst_pad_new_from_template
2010-07-30 11:32:00 +02:00
Carl-Anton Ingmarsson
5626857ac4 vdpau: remove GstVdpOutputSrcPad code to retrieve the device from downstream
we now no longer try to get the GstVdpDevice from downstream since it in
practice didn't give us anything and complicates the code alot. Nevertheless if device
distribution should be done there's probably a lot better ways to do it.
Instead we now simply aquire the device in vdpauvideopostprocess when we're
going into PAUSED.
2010-07-30 11:31:59 +02:00
Carl-Anton Ingmarsson
00ad3c8aeb vdpau: cleanup GstVdpDecoder opening of it's GstVdpDevice
we now no longer try to get the GstVdpDevice from downstream since it in
practice didn't give us anything and complicates the code alot. Nevertheless if device
distribution should be done there's probably a lot better ways to do it.
2010-07-30 11:31:59 +02:00
Carl-Anton Ingmarsson
d564e1bf19 vdpau: fix GstBaseVideoDecoder returning wrong GstStateChangeReturn
when gst_base_video_decoder_[start|stop] fails we now return
GST_STATE_CHANGE_FAILURE instead of returning what the parent class returns
2010-07-30 11:31:59 +02:00
Carl-Anton Ingmarsson
86860beeae vdpaumpegdec: remove unneeded setting of buffer flags
GstBaseVideoDecoder sets GST_VIDEO_BUFFER_TFF for us and
GST_BUFFER_FLAG_DELTA_UNIT doesn't make sense for decoded frames.
2010-07-30 11:31:59 +02:00
Andoni Morales
0390f0d765 dshowvideosrc: don't make a range if min==max
Fixes bug #625138
2010-07-29 16:08:03 +02:00
Tim-Philipp Müller
8559d5b9e1 vdpau: dist new header file
Fix make distcheck.
2010-07-27 18:07:00 +02:00
Julien Moutte
a51d318759 dshowvideosink: Improvements contributed from the Moovida projet.
* Inherit from GstVideoSink
* Implement GstNavigation interface
* Proper COM initialization for threaded environments
* Fix Window resource leak
* Add EVR support for better video scaling on Windows Vista and above
* Only apply PAR scaling when the keep_aspect_ratio property is set to stay
consistent with the other Linux sinks
* Prevent an infinite loop with the wndproc chain
* Fix debugging messages to use the object instance
2010-07-23 19:41:29 +02:00
Carl-Anton Ingmarsson
0b3c6e4b9e vdpau: add gst_vdp_decoder_render and gst_vdp_decoder_init_decoder 2010-07-23 00:29:34 +02:00
Carl-Anton Ingmarsson
b4e447375b vdpauh264dec: try to calculate framerate if we don't get one from upstream 2010-07-19 21:55:31 +02:00
Thijs Vermeir
d15418d6aa vdpau: fix segfault when vdpau device could not be created 2010-07-19 11:42:26 +02:00
Carl-Anton Ingmarsson
7462a64398 vdpauh264dec: fix problem when encountering GST_NAL_AU_DELIMITER 2010-07-18 21:16:23 +02:00
Sebastian Dröge
78639dd379 wasapisrc: Use new gst_audio_clock_new_full() 2010-07-16 17:59:15 +02:00
Carl-Anton Ingmarsson
2d870ee7fd vdpauh264dec: calculate width and height from bitstream info 2010-07-15 13:23:52 +02:00
Carl-Anton Ingmarsson
ecbf5a4e30 vdpauh264dec: fix usage of g_bit_storage 2010-07-15 11:10:03 +02:00
Carl-Anton Ingmarsson
b3ad9d7d04 vdpaumpegdec: rename zigzag matrix 2010-07-14 11:19:49 +02:00
Carl-Anton Ingmarsson
c27468f1a1 vdpauh264dec: use g_bit_storage instead of log2
log2 caused compile issues on certain platforms
2010-07-14 11:19:49 +02:00
David Hoyt
e467a3e14b winks: fix compilation by using the right function
Fixes #623883.
2010-07-08 21:54:28 +01:00
Michael Smith
f1ff58039a dshowdecwrapper: reset flow return state tracker after flush to avoid spurious
errors after flushing in some cases.
2010-07-07 10:34:51 -07:00
Philippe Normand
0c38d700ca dshowvideosink: Update renderer aspect ratio after force-aspect-ratio property update.
A new virtual method has been added to the RendererSupport class. It
is called during the initial renderer configuration and each time the
force-aspect-ratio property of the sink is updated.

Fixes bug #623272.
2010-07-07 07:44:20 +02:00
Andoni Morales Alastruey
d69e01ed20 dshowaudiodec: Fix compilation error
Closes #623713
2010-07-06 23:43:09 +01:00
Sebastian Dröge
dfeaa7709b vdpau: Check for log2 and only use it if it's available 2010-06-29 11:21:30 +02:00
Carl-Anton Ingmarsson
380ec88b4c vdpauh264dec: don't use deprecated g_ptr_array_free incase glib >= 2.22 2010-06-28 12:00:55 +02:00
Carl-Anton Ingmarsson
0aa4d01c0f vdpauvideopostprocess: fix resizing of output 2010-06-28 11:19:27 +02:00
Carl-Anton Ingmarsson
525c7c3933 vdpauh264dec: don't use glib 2.22 functions 2010-06-28 11:11:52 +02:00
Carl-Anton Ingmarsson
d49cbe69e1 vdpau: change GstBaseVideoDecoder state api 2010-06-28 11:11:52 +02:00
Carl-Anton Ingmarsson
7274d9f142 vdpauh264dec: free frames on finalize in GstH264DPB 2010-06-28 11:11:52 +02:00
Carl-Anton Ingmarsson
d930556a47 vdpau: add display property to GstVdpDecoder 2010-06-28 11:11:52 +02:00
Carl-Anton Ingmarsson
ec815085bf vdpauh264dec: rename GstVdpH264Frame to GstH264Frame 2010-06-28 11:11:52 +02:00
Carl-Anton Ingmarsson
00fd85c0f5 vdpau: fix error handling when plugging "vdpauvideopostprocess ! fakesink" 2010-06-28 11:11:52 +02:00
Carl-Anton Ingmarsson
8e59521efa vdpau: add error parameter to gst_vdp_video_src_pad_get_device 2010-06-28 11:11:51 +02:00
Sebastian Dröge
159b43d17c vdpau: Link to $(LIBM) for log2 and friends 2010-06-28 10:47:52 +02:00
Carl-Anton Ingmarsson
d13a122a56 vdpau: add GstVdpDecoder base class 2010-06-26 21:27:32 +02:00
Carl-Anton Ingmarsson
71620e7fbb vdpauh264dec: add gst_h264_dpb_set_output_func function 2010-06-26 21:27:32 +02:00
Tim-Philipp Müller
730c59e52a vdpay: fix build in uninstalled setup
Add GST_PLUGINS_BASE_CFLAGS to CFLAGS so it finds the gst/video/video.h
headers in an uninstalled setup. Also reshuffle order.
2010-06-24 23:57:16 +01:00
Carl-Anton Ingmarsson
5fbbbaccc3 vdpauh264dec: fix unitialized variable 2010-06-24 22:14:38 +02:00
Carl-Anton Ingmarsson
731d160e6d vdpauh264dec: fix initalization of GstNalReader cache 2010-06-24 22:07:45 +02:00
Carl-Anton Ingmarsson
cfad4aa3d4 vdpau: rename GstBaseVideoDecoder to SatBaseVideoDecoder using CFLAGS 2010-06-24 16:28:36 +02:00
Carl-Anton Ingmarsson
746dcfd09e Revert "vdpau: rename GstBaseVideoDecoder to SatBaseVideoDecoder"
This reverts commit aa0444f204.
2010-06-24 16:28:36 +02:00
Carl-Anton Ingmarsson
aa0444f204 vdpau: rename GstBaseVideoDecoder to SatBaseVideoDecoder 2010-06-24 13:21:34 +02:00
Carl-Anton Ingmarsson
e312e2b121 vdpauh264dec: use bitshifts instead of pow 2010-06-23 22:33:05 +02:00
Carl-Anton Ingmarsson
faa0e1c2eb vdpauh264dec: add interlaced = false to sink caps
we don't support interlaced content yet
2010-06-23 22:22:20 +02:00
Carl-Anton Ingmarsson
7f3252e90a vdpauh264dec: fix parsing of scaling lists 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
dfeff590b2 vdpauh264dec: fix reading of signed exp golomb 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
90077a6f2b vdpau: fixup decoder timestamping 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
3826b3b57b vdpau: remove parse_codec_data from GstBaseVideoDecoder 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
8eed6f2ab9 vdpauh264dec: fix initialization of fallback scaling matrix 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
3ea3a084e4 vdpauh264dec: improve further 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
322d1ff946 vdpauh264dec: now works for simple streams 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
80749da166 vdpau: change gst_vdp_video_src_pad_get_device behaviour
it now creates the device if it's not available
2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
f8846a463d vdpau: more work on h264 decoder 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
686d2d2303 vdpau: add beginning of h264 decoder 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
0490cb89c6 vdpau: base vdpaumpegdec on GstBaseVideoDecoder 2010-06-23 21:51:53 +02:00
Carl-Anton Ingmarsson
4926c6c617 vdpauvideopostprocess: fix small bug 2010-06-23 21:51:52 +02:00
Carl-Anton Ingmarsson
a9687846f6 vdpaumpegdec: use READ_UINT[8|16|32] macros 2010-06-23 21:51:52 +02:00
Carl-Anton Ingmarsson
6933d12a9b vdpau: remove gst_vdp_video_src_pad_set_caps 2010-06-23 21:51:52 +02:00
Tim-Philipp Müller
0b3f5bfed8 vcdsrc: minor clean-up
Use gst_uri_has_protocol().
2010-06-12 00:19:00 +01:00
Olivier Crête
adcb34378a shmsink: Verify that pipe exists before resizing it 2010-06-04 16:14:06 -04:00
Olivier Crête
0aba59782b shm: Add copyright notices to shmalloc.[ch] and shmpipe.[ch] 2010-06-04 15:54:33 -04:00
Tim-Philipp Müller
26e9df08b8 shm: fix debug messages
Misc. printf format fixes and missing arguments.
2010-06-03 20:51:57 +01:00
Olivier Crête
4556222718 shmsink: Make static function static 2010-06-03 15:27:43 -04:00
Olivier Crête
457b5d8ab7 shm: Use gst_element_class_set_details_simple 2010-06-03 15:27:43 -04:00
Olivier Crête
21686e3077 shm: Move to sys/ since it doesn't exist on windows 2010-06-03 15:27:43 -04:00
Bastien Nocera
af97600798 vcdsrc: change VCD URI handler to the DVD scheme
The current URI parsing code doesn't allow setting the "device"
from which the VCD should be read.

Use the same structure as the DVD URI handling instead, so that
devices can be passed in the URI, as well as track number.

Up the rank of the VCD plugin so that it can be auto-plugged and
used by Totem.

https://bugzilla.gnome.org/show_bug.cgi?id=340986
2010-05-22 10:30:44 +01:00
David Schleef
c3d4977761 Split out GST_PLUGINS_BAD_CFLAGS from GST_CFLAGS
Move include directives for gst-libs into GST_PLUGINS_BAD_CFLAGS,
and fix all the Makefiles that use it.  This is so that all the
include directories are added in the proper order: first the
directories in srcdir/builddir, then gst-plugins-base dirs, then
gstreamer dirs.  If the order is wrong, installed headers may be
used instead of local headers and/or uninstalled headers from -base.
2010-05-19 18:24:02 -07:00
Tim-Philipp Müller
e800ba112b Remove oss4 plugin
It has been moved to gst-plugins-good.

See #614305.
2010-05-11 19:08:45 +01:00
Carl-Anton Ingmarsson
10ee677b63 vdpau: fix small typo 2010-05-01 15:00:27 +02:00
Carl-Anton Ingmarsson
edcaf36377 vdpau: add leftover gstvdp.h 2010-05-01 14:58:30 +02:00
Carl-Anton Ingmarsson
a661b7c3ca vdpauvideopostprocess: fix crasher on setting properties before we're in READY 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
41492e3452 vdpau: remove debug code 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
8a355f1a24 vdpau: small api cleanup
merge gst_vdp_video_buffer_get_allowed_[video|yuv]_caps into
gst_vdp_video_buffer_get_allowed_caps
2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
5739eb3c8f vdpau: small fixes 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
7d253da43f vdpau: add back gstvdpau.c 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
ae660783f5 vdpau: add gst_vdp_init function where we register types 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
c4f60760ed vdpau: add better error handling to GstVdpOutputSrcPad
gst_vdp_output_src_pad_push, gst_vdp_output_src_pad_alloc_buffer and
gst_vdp_output_src_pad_get_device now take a GError parameter to be able to
signal errors to the caller
2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
ff7381109f vdpau: make GstVdpVideoSrcPad(Class)? private 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
2cb7696f86 vdpaumpegdec: follow GstVdpVideoSrcPad changes 2010-05-01 14:46:11 +02:00
Carl-Anton Ingmarsson
6afb2c5e8d vdpau: remove template-caps propery form GstVdpVideoSrcPad
GstVdpVideoSrcPad now use the template property of GstPad instead. Also changed
the _new function to be like gst_pad_new_from_template.
2010-05-01 14:46:11 +02:00
Руслан Ижбулатов
baffaea6e8 Fix warnings in directdrawsink and directsoundsrc
Fixes #617331
2010-05-01 00:04:55 +02:00
Brian Cameron
8f12893c91 oss4sink: implement GstStreamVolume interface and add mute and volume properties
OSS4 supports per-stream volume control, so expose this using the right
API, so that playbin2 and applications like totem can make use of it
(instead of using a volume element for volume control).

Fixes #614305.
2010-04-29 13:21:29 +01:00
Руслан Ижбулатов
5f25780b02 Fix printf format strings for gcc 4.5
Done on Windows/MinGW.

Fixes #617146
2010-04-29 10:17:56 +02:00
Sebastian Dröge
aabe73387a vdpau: Initialize possibly uninitialized variable 2010-04-15 21:38:54 +02:00
Sebastian Dröge
0d79ca29f7 dvbsrc: Actually compare the state and not the state change return from _get_state() 2010-04-15 21:35:15 +02:00
Sebastian Dröge
bad2aae7ae vdpau: Correctly link to the local libgstvdp-0.10 by using the libtool archive 2010-04-12 09:16:19 +02:00
Tim-Philipp Müller
e8d0c50901 oss4: 8-bit PCM audio caps don't need an endianness field 2010-04-08 10:45:33 +01:00
Tim-Philipp Müller
d575347603 oss4: don't iterate the formats table twice for each entry
When iterating the formats table, we can just pass the whole
entry to our helper function, which avoids iterating the table
again to find the entry structure from the passed format id.
2010-04-08 10:43:26 +01:00
Tim-Philipp Müller
cd4099db89 oss4: also accept formats not natively supported
Also accept formats that are not natively supported by the
hardware, OSS4 can convert them internally. List the native
formats first in the caps though, to express our preference
for the native formats. We need this in order to support the
case properly where the audio hardware supports only e.g.
little endian PCM, but the host is big endian, since many
audio elements only support native endianness and make the
reasonable assumption that any audiosink will be able to
handle audio in native endianness.

Based on patch by Jerry Tan <jerry.tan@sun.com>

Fixes #614317.
2010-04-08 10:15:56 +01:00
Sebastian Dröge
ee4baab100 dvbsrc: Use uint instead of int for frequency and symbol-rate properties
The kernel API specifies them as uint32 and frequencies/symbol-rates greater
than 2^31 are actually needed sometimes.

Fixes bug #614475.
2010-04-02 19:09:40 +02:00
Tim-Philipp Müller
840e1c5209 build: build plugins and examples in parallel where possible, if make -jN is used 2010-03-30 01:17:15 +01:00
Tim-Philipp Müller
f81a96ae65 oss4: add comment for translators
Not that that will make these strings much better. Also remove i18n
marker where it doesn't make sense.
2010-03-30 01:14:58 +01:00
Andoni Morales
b65da8ea96 dshowvideosrc: Add support for YUY2 input format
Fix bug #613708
2010-03-24 17:05:14 +01:00
Tristan Matthews
552cd26b43 osx: more compiler warning fixes
Avoid new warnings.

Fixes #613758.
2010-03-24 00:19:02 +00:00
Benjamin Otte
be59e4d52e wininet: Fix warnings 2010-03-23 01:41:31 +01:00
Benjamin Otte
f8266ee03f directdraw: Fix warnings 2010-03-23 01:30:54 +01:00
Benjamin Otte
5038a886ab oss4: Refactor code to make it look more modern
A side effect is that it passes -Wformat-nonliteral and doesn't read
invalid memory in some cases, like when the mixer track contains
a % sign or there is a number but not a known mixer name.
2010-03-22 16:22:22 +01:00
Benjamin Otte
9738d70e28 oss4: Avoid g_quark_to_string (g_quark_from_string ()) madness
We to the strdup inside gst_oss4_mixer_control_get_translated_name()
instead of in the only caller.
2010-03-22 16:22:22 +01:00
Benjamin Otte
33c2f5fb01 Add -Wwrite-strings
and fix its warnings
2010-03-22 13:16:33 +01:00
Sebastian Dröge
2a81495bff vdpau: Fix compiler warnings 2010-03-22 08:45:27 +01:00
Benjamin Otte
c8702e06c4 directdraw: Fix warnings 2010-03-21 22:48:13 +01:00
Benjamin Otte
9e399550db acmmp3dec: fix warnings 2010-03-21 22:09:20 +01:00
Benjamin Otte
726894ba61 Fix acmenc for warning flags 2010-03-21 21:53:44 +01:00
Benjamin Otte
f96e4f1581 Add -Wmissing-declarations -Wmissing-prototypes to configure flags
And fix all warnings
2010-03-21 21:39:18 +01:00
Benjamin Otte
775c7584fd gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 22:46:41 +01:00
Tim-Philipp Müller
f1fde2ed4b dvbsrc: use g_value_set_static_string() where possible 2010-03-15 19:21:52 +00:00
David Hoyt
584ac24ba0 dshowvideosink: don't crash on invalid AM_MEDIA_TYPE 2010-02-01 16:26:36 -08:00
Vincent GENIEUX
39ab05e024 dvbsrc: fix element shutdown on bad reception
When we have a bad reception, avoid going into an infinite loop by setting a
shutdown flag when shutting down.

Fixes #607747
2010-01-27 12:10:32 +01:00
Benjamin Otte
665a06a44e [oss4] Fix compiler warning about unused return value 2010-01-20 13:30:39 +01:00
Stephen McNamara
405872f69d dshowvideosink: don't leak filter_media_event 2009-12-08 17:56:24 -08:00
Michael Smith
bb3ff2d0a7 dshowvideosink: spell things more betterer. 2009-12-07 10:21:32 -08:00
Stephen McNamara
2bae099473 dshowvideosink: add virtual destructor for internal helper class. 2009-12-07 10:10:29 -08:00
Wim Taymans
966c83dfea vdpau: fix build 2009-11-26 15:33:32 -06:00
Edward Hervey
635e2774e6 vdpau: Fix includes 2009-11-23 09:17:39 +01:00
Carl-Anton Ingmarsson
d57488461a vdpauvideopostprocess: convert to 1/1 pixel-aspect-ratio for rgb too 2009-11-22 22:54:27 +01:00
Carl-Anton Ingmarsson
7401cd90ad vdpausink: intersect allowed caps with our template caps 2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
6aba832e7f vdpau: fix gst_vdp_[video|yuv]_to_output_caps to also add rgb caps 2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
2d03815e19 vdpauvideopostprocess: use GstVdpVideoSrcPad 2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
4dd36435a7 vdpau: add functions to GstVdpOutputBuffer needed for rgb download 2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
64601993c9 vdpau: add GstPad subclass GstVdpOutputSrcPad
GstVdpOutputSrcPad is a subclass of GstPad that is used for pushing out
GstVdpOutputBuffers. It takes care of caps negotiation and conversion to
video/x-raw-rgb.
2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
a71cf4dfb2 gstvdpvideosrcpad: add "template-caps" property
The property limits the available output caps
2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
65bc7c87b2 gstvdpvideobuffer: fix typo 2009-11-22 22:38:09 +01:00
Carl-Anton Ingmarsson
9046f1e089 gstvdpvideosrcpad: replace get_pad_template() with get_template_caps() 2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
7f198163ec gstvdpvideosrcpad: don't recreate caps in getcaps 2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
b7aa03570c vdpau: add GstPad subclass GstVdpVideoSrcPad
GstVdpVideoSrcPad takes care of caps negotiation and conversion of
GstVdpVideoBuffers to the negotiated output format.
2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
9c1b87aaa6 vdpausink: rework presentation blocking a bit
instead of blocking until the previous surface has been displayed, we new only
add surfaces to the queue if it's idle.
2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
ea364d7a5a vdpauvideopostprocess: split up chain function 2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
51caa55d4e vdpauvideopostprocess: implement basic qos handling 2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
55b108f7ca vdpaumpegdec: add display property 2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
8998198703 vdpau: remove unused functions 2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
f9e00471e3 vdpau: use local libgstvdp headers 2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
25014f8e7c vdpau: remove now unneeded vdpauvideoyuv and vdpauyuvvideo elements 2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
7753f80cf5 vdpauvideopostprocess: add display property 2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
c094db8170 vdpausink: add debug output 2009-11-22 22:38:08 +01:00
Carl-Anton Ingmarsson
4609e07c5e vdpauvideopostprocess: add support for video/x-raw-yuv input 2009-11-22 22:38:07 +01:00
Carl-Anton Ingmarsson
a801e81efb vdpaumpegdec: add src_getcaps func
this way we can return only the caps we really support, since we're able to query vdpau
about it
2009-11-22 22:38:07 +01:00
Carl-Anton Ingmarsson
1b4094e5e6 vdpaumpegdec: add support for negotation of x-raw-yuv output 2009-11-22 22:38:07 +01:00
Carl-Anton Ingmarsson
79c600f7be vdpau: create a libgstvdp library.
The library contains GstVdpDevice GstVdpVideoBuffer and GstVdpOutputBuffer. The
library will (apart from the plugins here) be used by the upcoming gst-ffmpeg
vdpau support.
2009-11-22 22:38:07 +01:00
Carl-Anton Ingmarsson
8ba3df0939 vdpaumpegdec: check for sink element returning wrong buffer type 2009-11-22 22:38:07 +01:00
Carl-Anton Ingmarsson
325bd7aad2 vdpau: remove unneeded gst_vdp_video_buffer_add_reference function 2009-11-22 22:38:07 +01:00
Carl-Anton Ingmarsson
c621101faa vdpauvideopostprocess: fix longname 2009-11-22 22:38:07 +01:00
Chris Hills
016c9797b7 dvbsrc: Add support for DVB-T/DVB-C with DVB API 3.3 2009-11-06 15:43:39 +01:00
Tim-Philipp Müller
926493d12b dvbbasebin: printf format fixes 2009-11-05 21:45:07 +00:00
Michael Smith
9421274006 osxvideosrc: change a .m file containing only C code to a .c file. Makes
building this easier.
2009-10-29 16:35:13 -07:00
Julien Isorce
db3bd777e8 dshowsrcwrapper: cleanup push buffer callback 2009-10-28 17:37:44 +01:00
Michael Smith
7ca8034c51 Remove executable bits from non-executable files. 2009-10-27 11:51:05 -07:00