Commit graph

59 commits

Author SHA1 Message Date
Dustin Spicuzza
a303a7971c directsoundsink: Use GstClock API instead of Sleep() for waiting
It's more accurate and allows cancellation.

https://bugzilla.gnome.org/show_bug.cgi?id=773681
2017-05-08 17:33:38 +02:00
Nirbheek Chauhan
2d44b53ff6 directsoundsink: Fix corner case causing large CPU usage
We were unnecessarily looping/goto-ing repeatedly when we had exactly
the amount of data as the free space, and also when the free space was
too small. This, as it turns out, is a very common scenario with
Directsound on Windows.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=773681

We have to do polling here because the event notification API that
Directsound exposes cannot be used with live playback since all events
must be registered in advance with the capture buffer, you cannot
add/remove them once playback has begun. Directsoundsrc had the same
problem.

See also: https://bugzilla.gnome.org/show_bug.cgi?id=781249
2017-05-08 16:02:46 +02:00
Nirbheek Chauhan
0700b1f0b0 directsoundsink: Clean up some debug logging
Don't need to print the function name, gstreamer does it for you.

https://bugzilla.gnome.org/show_bug.cgi?id=773681
2017-05-08 16:02:46 +02:00
Nirbheek Chauhan
af1d49d039 directsound: port away from old DirectX API
D3DX has been deprecated for the last 4 years and latest versions of
Windows no longer ship headers for it. This is fine as long as you're
building with Cerbero's Wine-based DirectX headers, but sucks if you
want to build against the actual Windows SDK.

We were just using it to get error strings anyway, so just use the
generic error string API.
2016-08-18 20:20:15 +01:00
Vineeth TM
1071309870 good: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763076
2016-03-24 14:32:20 +02:00
Thomas Roos
93d09f0474 dirctsoundsink: Setting volume should not unmute
https://bugzilla.gnome.org/show_bug.cgi?id=755106
2016-03-08 20:42:09 +02:00
Thomas Roos
e345a7fee9 dirctsoundsink: Fix volume reset on unmute
https://bugzilla.gnome.org/show_bug.cgi?id=755106
2016-03-08 20:42:06 +02:00
Thomas Roos
51f94288ce directsoundsink: Fix sleep for buffer-time lower than 200000
https://bugzilla.gnome.org/show_bug.cgi?id=748680
2015-12-21 12:44:55 +01:00
Thomas Roos
adb5efaf8a directsoundsink: Check device property and fail if device can't be found
Don't use default if a specific device is set but it can't be found.

https://bugzilla.gnome.org/show_bug.cgi?id=759452
2015-12-14 15:48:40 +01:00
Thomas Roos
fb5a5c069c directsoundsink: Fix handling of the mute property
- set mute value at startup
- correct set and get mute functions

https://bugzilla.gnome.org/show_bug.cgi?id=755106
2015-12-14 14:37:00 +01:00
Thomas Roos
4d72fd9884 directsoundsink: Check the return value of GetStatus() too to decide if there was an error
If GetStatus() fails, the status itself won't be very meaningful but we also
have to look at its return value. This fixes blocking pipelines when removing
sound devices or during other errors, where we wouldn't notice the error and
then wait forever.

https://bugzilla.gnome.org/show_bug.cgi?id=734098
2015-12-11 12:42:04 +02:00
Dustin Spicuzza
5c680333ba directsoundsink: allow specifying audio playback device
https://bugzilla.gnome.org/show_bug.cgi?id=753670
2015-08-17 13:57:56 +02:00
Thiago Santos
c194f2de12 directsoundsink: fix modulo math with ringbuffer parameters
To get a multiple of bpf use a subtraction and not an addition

https://bugzilla.gnome.org/show_bug.cgi?id=745684
2015-03-06 11:27:41 -03:00
Sebastian Dröge
7692e9e569 directsoundsink: WAVEFORMATEX is unsigned for 8 bit integers, and signed for others
Probably fixes
https://bugzilla.gnome.org/show_bug.cgi?id=705477
2013-08-21 16:41:21 +02:00
Sebastian Dröge
78acb51dc8 directsoundsink: Check for a subset instead of non-empty intersection in accept-caps 2013-03-26 14:44:36 +01:00
Sebastian Dröge
4f58287aca directsoundsink: Properly handle the filter caps in get_caps() 2013-03-26 14:40:16 +01:00
Sebastian Dröge
0265b0f6a3 directsoundsink: Don't unnecessarily get the parent class in class_init
The trampoline generated by G_DEFINE_TYPE does that already.
2013-03-26 14:40:16 +01:00
Руслан Ижбулатов
fc81ddc8ee directsound, waveform: fix compilation errors caused by circular includes
https://bugzilla.gnome.org/show_bug.cgi?id=690124
2012-12-12 22:42:51 +00:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Arun Raghavan
333d568ec7 directsoundsink: Specify endianness in IEC 61937 payloading
DirectSound expects native endian byte order.

https://bugzilla.gnome.org/show_bug.cgi?id=678021
2012-09-19 09:18:19 +05:30
Mark Nauwelaerts
fd162372f1 directsoundsink: port to the new GLib thread API 2012-09-11 12:54:41 +02:00
Tim-Philipp Müller
4bb52bbadf docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert 2012-08-27 21:20:30 +01:00
Xavi Artigas
ec2e962323 directsoundsink: Do not overwrite the DS buffer when testing for AC3 support
https://bugzilla.gnome.org/show_bug.cgi?id=680706

Conflicts:
	sys/directsound/gstdirectsoundsink.c
2012-08-06 10:59:01 +02:00
Руслан Ижбулатов
b64849550d directsoundsink: Fix query function implementation; more debugging 2012-07-04 19:54:55 +02:00
Руслан Ижбулатов
dc2ce73a3e directsoundsink: Fix spec stuff in directsoundsink 2012-07-04 19:54:55 +02:00
Andoni Morales Alastruey
c38fa466c3 directsoundsink: fix access to invalid pointer in set_volume 2012-07-04 19:54:55 +02:00
Sebastian Dr=C3=B6ge
f72a55319d directsoundsink: Fix caps leaks 2012-07-04 19:54:55 +02:00
Andoni Morales Alastruey
1c6d1bd29a directsoundsink: fix acceptcaps check 2012-07-04 19:54:55 +02:00
Andoni Morales Alastruey
ed8ad7bffe directsoundsink: use helper function to check for spdif formats 2012-07-04 19:54:55 +02:00
Andoni Morales Alastruey
a9dff8adb9 directsoundsink: add support for DTS 2012-07-04 19:54:55 +02:00
Andoni Morales Alastruey
e815d08342 directsoundsink: force 48000 kHz force AC-3 over spdif 2012-07-04 19:54:51 +02:00
Andoni Morales Alastruey
7d64e16b30 directsoundsink: add support for ac-3 over spdif 2012-07-04 19:54:43 +02:00
Tim-Philipp Müller
e09ae5736d Use new gst_element_class_set_static_metadata() 2012-04-10 00:51:41 +01:00
Andoni Morales Alastruey
83090f6530 direcsoundsink: Port element to 0.11 2012-01-27 18:26:18 +01:00
Stefan Sauer
2468492f02 interfaces: clean up the use of iface and class/klass 2011-10-21 14:58:41 +02:00
Philip Jägenstedt
fbe726c3da directsoundsink: 16-bit audio is signed, 8-bit is unsigned.
Pretending to handle 8-bit signed causes distorted audio when
actually given such audio, which you will get if passing 8-bit
unsigned through audioconvert ! audioresample, as audioresample
only handles 8-bit signed.  Fixes #605834.

Signed-off-by: David Schleef <ds@schleef.org>
2011-07-09 16:45:51 -07:00
David Schleef
8c07e52236 directsoundsink: Add conditionals on WAVE_FORMAT_DOLBY_AC3_SPDIF 2011-04-13 16:53:30 -07:00
Mark Nauwelaerts
564976b609 directsound: arrange for definition of _swab on Cygwin
gstdirectsoundsink.c: In function 'gst_directsound_sink_write':
gstdirectsoundsink.c:557: error: implicit declaration of function '_swab'
gstdirectsoundsink.c:557: error: nested extern declaration of '_swab'
2011-02-01 20:11:06 +01:00
Julien Moutte
055586f2d9 directsoundsink: Plug some memleak and support 22050Hz mono sound.
Segment size needs to be a multiple of the sample size in bytes.
2010-06-09 20:07:09 +02:00
Sebastian Dröge
2ffcb159d7 sys: Don't use GST_DEBUG_FUNCPTR for GObject vfuncs 2010-06-06 17:57:03 +02:00
Tim-Philipp Müller
b9814cd902 directsoundsink: fix redundant function redeclaration compiler warnings
Re-apply this again as well, as it was undone by the previous commit..
2010-03-27 09:05:50 +00:00
Benjamin Otte
7bd8740843 gst_element_class_set_details => gst_element_class_set_details_simple
Apply this again, as it was overwritten by the previous commit. Merging
is hard, apparently.
2010-03-27 09:05:00 +00:00
Julien Moutte
0e3c190d75 directsoundsink: Implement SPDIF support for AC3.
Detect if the sound card supports SPDIF passthru of AC3 and add
necessary code to support that like alsasink.
2010-03-26 23:20:10 +01:00
Tim-Philipp Müller
0efaf327c2 directsoundsink: fix redundant function redeclaration compiler warnings 2010-03-18 18:49:24 +00:00
Benjamin Otte
cccfeaa59c gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 14:32:00 +01:00
Stefan Kost
8e462968cf Remove version numbers from a few gst-launch examples.
The majority of the examples doe not use -0.10 and this will also help us to maintain the docs.
2009-01-29 11:07:59 +02:00
Stefan Kost
6335307b97 Update and add documentation for platform specific plugins (sys).
Link to properties. Correct titles for examples. Fix examples.
2009-01-29 10:12:43 +02:00
Michael Smith
e2dbf108e6 configure.ac: Fix libs for linking directsound.
Original commit message from CVS:
* configure.ac:
Fix libs for linking directsound.
* sys/directsound/gstdirectsoundsink.c:
Fix buffer sizing to prevent racing the ringbuffer at startup.
Add volume property.
2008-10-01 21:22:26 +00:00
Sébastien Moutte
877b1be83a docs/plugins/gst-plugins-bad-plugins.args: Remove directsoundsink property doc as this sink use the mixer interface now.
Original commit message from CVS:
* docs/plugins/gst-plugins-bad-plugins.args:
Remove directsoundsink property doc as this sink use the mixer
interface now.
* docs/plugins/gst-plugins-bad-plugins.interfaces:
Add interfaces implemented by Windows sinks.
* sys/directsound/gstdirectsoundsink.c:
* sys/directsound/gstdirectsoundsink.h:
Remove directsoundsink property  and implement the mixer interface.
* win32/vs6/gst_plugins_bad.dsw:
* win32/vs6/libgstdirectsound.dsp:
Update project files.
* gst-libs/gst/dshow/gstdshow.cpp:
* gst-libs/gst/dshow/gstdshow.h:
* gst-libs/gst/dshow/gstdshowfakesink.cpp:
* gst-libs/gst/dshow/gstdshowfakesink.h:
* gst-libs/gst/dshow/gstdshowfakesrc.cpp:
* gst-libs/gst/dshow/gstdshowfakesrc.h:
* gst-libs/gst/dshow/gstdshowinterface.cpp:
* gst-libs/gst/dshow/gstdshowinterface.h:
* win32/common/libgstdshow.def:
* win32/vs6/libgstdshow.dsp:
Add a new gst library which allow to create internal Direct Show
graph (pipelines) to wrap Windows sources, decoders or encoders.
It includes a DirectShow fake source and sink and utility functions.
* sys/dshowsrcwrapper/gstdshowaudiosrc.c:
* sys/dshowsrcwrapper/gstdshowaudiosrc.h:
* sys/dshowsrcwrapper/gstdshowsrcwrapper.c:
* sys/dshowsrcwrapper/gstdshowsrcwrapper.h:
* sys/dshowsrcwrapper/gstdshowvideosrc.c:
* sys/dshowsrcwrapper/gstdshowvideosrc.h:
* win32/vs6/libdshowsrcwrapper.dsp:
Add a new plugin to wrap DirectShow sources on Windows.
It gets data from any webcam, dv cam, micro. We could add
tv tunner card later.
2007-05-23 22:44:12 +00:00
Christian Schaller
b9820ee991 update copyright statements
Original commit message from CVS:
update copyright statements
2007-02-27 12:02:03 +00:00