summaryrefslogtreecommitdiffstats
path: root/sys
AgeCommit message (Collapse)AuthorFilesLines
2009-05-03dshowdec: fix compilation with the debugging system disabledTim-Philipp Müller2-14/+2
One GST_DEBUG_CATEGORY_INIT should be enough anyway. Fixes #578562 (spotted by David Hoyt).
2009-05-03acmenc, acmmp3dec, sdp: link to all requires libraries on win32.Michael Smith2-19/+30
Add winsock for windows (for sdp). Link to all the plugins-base libs we indirectly use for acmmenc and acmmp3dec.
2009-03-26acm: Port to MinGWРуслан Ижбулатов4-16/+22
Fixes bug #573595.
2009-03-20dshowdec: Add par_n and par_d to the object structure to fix compilationJan Schmidt1-0/+1
2009-03-04dvbsrc: make some docs up to dateZaheer Merali1-7/+6
2009-02-28acmenc: fix whitespaceMichael Smith1-545/+568
Convert to unix newlines, and reindent in some broken places.
2009-02-27qtwrapper: Only use _dump_mem() if requested.Edward Hervey1-0/+2
2009-02-23qtwrapper: Fix build on macosxEdward Hervey1-3/+3
2009-02-12dshowvideosink: Return ASYNC appropriately from change_state.Michael Smith1-4/+8
Make sure we don't do the wrong thing when our base class is returning ASYNC in state changes.
2009-02-12dshowdecwrapper: fix compilation.Michael Smith1-7/+0
Accidently merged part of one change; remove it.
2009-02-10dshowdecwrapper: Pass pixel aspect through from demuxers, if supplied.Michael Smith1-2/+14
If the incoming caps have a pixel-aspect-ratio, ensure it's set on the output. Corrects PAR for many (but probably not all) files.
2009-02-10dshowdecwrapper: Make audio decoders have SECONDARY rank.Michael Smith1-1/+1
These wrappers are not ideal, and for many of these formats there are better gstreamer elements available. So, make the rank SECONDARY. In particular, the mp3 decoder on winXP doesn't work very well.
2009-02-10dshowdecwrapper: Delete old .c files that are unusedMichael Smith3-2417/+0
These old files are stale; the plugin was rewritten in c++ ages ago. Not sure why these are hanging around.
2009-02-09acmmp3dec: fix major memory leaks and clean up code.Michael Smith1-349/+410
Unref incoming buffers when we're done. Reindent, clean up white space. Fix comments.
2009-02-04Fix up things that the indent thingy complained aboutMichael Smith1-4/+6
2009-02-04Fix major leaks in qtwrapper audio decoders.Michael Smith1-2/+36
Free the decoder component and audiobufferlist when caps change, or when disposing element.
2009-02-04Handle many more edge cases in dshowvideosink.Michael Smith4-1833/+2045
Instrument various codepaths with debug messages. Handle (as best as I could see how - it's pretty nasty) moving a video window to another monitor. Add listening for directshow events.
2009-01-29qtwrapper: Fixes build at case sensitive systems.Thiago Sousa Santos4-4/+4
2009-01-06sys/acmmp3dec/Makefile.am: Fix typo in the opposite way to give the plugin a ↵Michael Smith1-5/+5
sensible name. Original commit message from CVS: * sys/acmmp3dec/Makefile.am: Fix typo in the opposite way to give the plugin a sensible name.
2009-01-06sys/acmmp3dec/Makefile.am: Fix typo in the makefile target preventing disting.Jan Schmidt1-1/+1
Original commit message from CVS: * sys/acmmp3dec/Makefile.am: Fix typo in the makefile target preventing disting.
2009-01-04sys/dvb/dvbbasebin.c: Fix some memory leaks. Fixes bug #566356.Sebastian Pölsterl1-4/+23
Original commit message from CVS: Patch by: Sebastian Pölsterl <sebp at k-d-w dot org> * sys/dvb/dvbbasebin.c: (dvb_base_bin_init), (dvb_base_bin_finalize), (dvb_base_bin_activate_program), (dvb_base_bin_pmt_info_cb), (dvb_base_bin_pad_added_cb), (dvb_base_bin_program_destroy): Fix some memory leaks. Fixes bug #566356.
2008-12-23sys/dvb/gstdvbsrc.c: With constant read failures, make sure we exit the ↵Zaheer Abbas Merali1-1/+4
read_device method. Original commit message from CVS: * sys/dvb/gstdvbsrc.c: With constant read failures, make sure we exit the read_device method.
2008-12-23sys/dvb/gstdvbsrc.c: Post bus message with dvb read failure when unable to ↵Zaheer Abbas Merali1-2/+7
read from device. Original commit message from CVS: * sys/dvb/gstdvbsrc.c: Post bus message with dvb read failure when unable to read from device.
2008-12-23sys/fbdev/gstfbdevsink.c: Fix the Depth calculation.Luotao Fu1-2/+4
Original commit message from CVS: Patch by: Luotao Fu <l dot fu at pengutronix dot de> * sys/fbdev/gstfbdevsink.c: (gst_fbdevsink_getcaps): Fix the Depth calculation. Fixes #564114.
2008-11-25Add new directory for new acmmp3dec pluginMichael Smith3-2/+386
Original commit message from CVS: * configure.ac: * sys/Makefile.am: Add new directory for new acmmp3dec plugin * sys/acmenc/Makefile.am: * sys/acmenc/acmmp3dec.c: Add new acmmp3dec plugin, which uses ACM for decoding mp3 on windows.
2008-11-21sys/dshowdecwrapper/gstdshowaudiodec.cpp: Fix flushing/seeking problems ↵Michael Smith2-15/+57
returning error code. Original commit message from CVS: * sys/dshowdecwrapper/gstdshowaudiodec.cpp: Fix flushing/seeking problems returning error code. Fix mp3 decoding with winXP (crashed randomly, occasionally). * sys/dshowdecwrapper/gstdshowvideodec.cpp: Fix problems when framerate is missing from video.
2008-11-14sys/qtwrapper/codecmapping.c: Add some of our favorite codecs.David Schleef1-0/+6
Original commit message from CVS: * sys/qtwrapper/codecmapping.c: Add some of our favorite codecs.
2008-11-06sys/dvb/gstdvbsrc.c: Set filters in PAUSED or PLAYING.Zaheer Abbas Merali1-2/+3
Original commit message from CVS: * sys/dvb/gstdvbsrc.c: Set filters in PAUSED or PLAYING.
2008-11-04Fix memleaks.Sebastian Pölsterl1-0/+2
Original commit message from CVS: patch by: Sebastian Pölsterl * gst/mpegdemux/mpegtspacketizer.c: * sys/dvb/gstdvbsrc.c: Fix memleaks.
2008-11-04Don't install static libs for plugins. Fixes #550851 for -bad.Stefan Kost12-1/+12
Original commit message from CVS: * ext/alsaspdif/Makefile.am: * ext/amrwb/Makefile.am: * ext/apexsink/Makefile.am: * ext/arts/Makefile.am: * ext/artsd/Makefile.am: * ext/audiofile/Makefile.am: * ext/audioresample/Makefile.am: * ext/bz2/Makefile.am: * ext/cdaudio/Makefile.am: * ext/celt/Makefile.am: * ext/dc1394/Makefile.am: * ext/dirac/Makefile.am: * ext/directfb/Makefile.am: * ext/divx/Makefile.am: * ext/dts/Makefile.am: * ext/faac/Makefile.am: * ext/faad/Makefile.am: * ext/gsm/Makefile.am: * ext/hermes/Makefile.am: * ext/ivorbis/Makefile.am: * ext/jack/Makefile.am: * ext/jp2k/Makefile.am: * ext/ladspa/Makefile.am: * ext/lcs/Makefile.am: * ext/libfame/Makefile.am: * ext/libmms/Makefile.am: * ext/metadata/Makefile.am: * ext/mpeg2enc/Makefile.am: * ext/mplex/Makefile.am: * ext/musepack/Makefile.am: * ext/musicbrainz/Makefile.am: * ext/mythtv/Makefile.am: * ext/nas/Makefile.am: * ext/neon/Makefile.am: * ext/ofa/Makefile.am: * ext/polyp/Makefile.am: * ext/resindvd/Makefile.am: * ext/sdl/Makefile.am: * ext/shout/Makefile.am: * ext/snapshot/Makefile.am: * ext/sndfile/Makefile.am: * ext/soundtouch/Makefile.am: * ext/spc/Makefile.am: * ext/swfdec/Makefile.am: * ext/tarkin/Makefile.am: * ext/theora/Makefile.am: * ext/timidity/Makefile.am: * ext/twolame/Makefile.am: * ext/x264/Makefile.am: * ext/xine/Makefile.am: * ext/xvid/Makefile.am: * gst-libs/gst/app/Makefile.am: * gst-libs/gst/dshow/Makefile.am: * gst/aiffparse/Makefile.am: * gst/app/Makefile.am: * gst/audiobuffer/Makefile.am: * gst/bayer/Makefile.am: * gst/cdxaparse/Makefile.am: * gst/chart/Makefile.am: * gst/colorspace/Makefile.am: * gst/dccp/Makefile.am: * gst/deinterlace/Makefile.am: * gst/deinterlace2/Makefile.am: * gst/dvdspu/Makefile.am: * gst/festival/Makefile.am: * gst/filter/Makefile.am: * gst/flacparse/Makefile.am: * gst/flv/Makefile.am: * gst/games/Makefile.am: * gst/h264parse/Makefile.am: * gst/librfb/Makefile.am: * gst/mixmatrix/Makefile.am: * gst/modplug/Makefile.am: * gst/mpeg1sys/Makefile.am: * gst/mpeg4videoparse/Makefile.am: * gst/mpegdemux/Makefile.am: * gst/mpegtsmux/Makefile.am: * gst/mpegvideoparse/Makefile.am: * gst/mve/Makefile.am: * gst/nsf/Makefile.am: * gst/nuvdemux/Makefile.am: * gst/overlay/Makefile.am: * gst/passthrough/Makefile.am: * gst/pcapparse/Makefile.am: * gst/playondemand/Makefile.am: * gst/rawparse/Makefile.am: * gst/real/Makefile.am: * gst/rtjpeg/Makefile.am: * gst/rtpmanager/Makefile.am: * gst/scaletempo/Makefile.am: * gst/sdp/Makefile.am: * gst/selector/Makefile.am: * gst/smooth/Makefile.am: * gst/smoothwave/Makefile.am: * gst/speed/Makefile.am: * gst/speexresample/Makefile.am: * gst/stereo/Makefile.am: * gst/subenc/Makefile.am: * gst/tta/Makefile.am: * gst/vbidec/Makefile.am: * gst/videodrop/Makefile.am: * gst/videosignal/Makefile.am: * gst/virtualdub/Makefile.am: * gst/vmnc/Makefile.am: * gst/y4m/Makefile.am: * sys/acmenc/Makefile.am: * sys/cdrom/Makefile.am: * sys/dshowdecwrapper/Makefile.am: * sys/dshowsrcwrapper/Makefile.am: * sys/dvb/Makefile.am: * sys/dxr3/Makefile.am: * sys/fbdev/Makefile.am: * sys/oss4/Makefile.am: * sys/qcam/Makefile.am: * sys/qtwrapper/Makefile.am: * sys/vcd/Makefile.am: * sys/wininet/Makefile.am: * win32/common/config.h: Don't install static libs for plugins. Fixes #550851 for -bad.
2008-11-03sys/qtwrapper/audiodecoders.c: Fix mismatched signedness compiler warning.Jan Schmidt1-1/+1
Original commit message from CVS: * sys/qtwrapper/audiodecoders.c: (open_decoder): Fix mismatched signedness compiler warning.
2008-10-30sys/qtwrapper/audiodecoders.c: Add ALAC support.Michael Smith2-74/+188
Original commit message from CVS: * sys/qtwrapper/audiodecoders.c: Add ALAC support. Fix decode of mono AAC files created by itunes. Set output format correctly (don't ask quicktime to resample for us). Use a larger decode buffer to avoid problems with large ALAC packets. Fix decode to loop until we have all output data. * sys/qtwrapper/qtutils.c: Fix includes so we compile on more OSes.
2008-10-16sys/acmenc/Makefile.am: Remove incorrect use of DIRECTSOUND_LDFLAGSMichael Smith1-1/+1
Original commit message from CVS: 2008-10-16 Michael Smith <msmith@songbirdnest.com> * sys/acmenc/Makefile.am: Remove incorrect use of DIRECTSOUND_LDFLAGS
2008-10-12sys/oss4/: Add some spaces in translateable strings.Jan Schmidt3-5/+5
Original commit message from CVS: * sys/oss4/oss4-mixer.c: * sys/oss4/oss4-sink.c: * sys/oss4/oss4-source.c: Add some spaces in translateable strings. Fixes: #555969 #555968 #555965
2008-09-30sys/: New plugin for audio capture and playback using Windows Audio SessionOle André Vadla Ravnås9-1/+1204
Original commit message from CVS: * sys/Makefile.am: * sys/wasapi/Makefile.am: * sys/wasapi/gstwasapi.c: * sys/wasapi/gstwasapisink.c: * sys/wasapi/gstwasapisink.h: * sys/wasapi/gstwasapisrc.c: * sys/wasapi/gstwasapisrc.h: * sys/wasapi/gstwasapiutil.c: * sys/wasapi/gstwasapiutil.h: New plugin for audio capture and playback using Windows Audio Session API (WASAPI) available with Vista and newer (#520901). Comes with hardcoded caps and obviously needs lots of love. Haven't had time to work on this code since it was written, was initially just a quick experiment to play around with this new API.
2008-09-30sys/dshowdecwrapper/gstdshowaudiodec.cppOle André Vadla Ravnås1-2/+2
Original commit message from CVS: * sys/dshowdecwrapper/gstdshowaudiodec.cpp (AudioFakeSink.DoRenderSample): Fix a couple of signed/unsigned comparison warnings.
2008-09-30sys/dshowdecwrapper/: Use the _T() macro to support both Unicode and MBCS.Ole André Vadla Ravnås2-2/+2
Original commit message from CVS: * sys/dshowdecwrapper/gstdshowaudiodec.h (AudioFakeSink.AudioFakeSink): * sys/dshowdecwrapper/gstdshowvideodec.h (VideoFakeSink.VideoFakeSink): Use the _T() macro to support both Unicode and MBCS.
2008-09-24sys/dshowdecwrapper/: Prefer known-good filters, create directly by GUID if ↵Michael Smith7-272/+348
possible, fall back to creating highest-m... Original commit message from CVS: * sys/dshowdecwrapper/gstdshowaudiodec.cpp: * sys/dshowdecwrapper/gstdshowaudiodec.h: * sys/dshowdecwrapper/gstdshowfakesrc.cpp: * sys/dshowdecwrapper/gstdshowutil.cpp: * sys/dshowdecwrapper/gstdshowutil.h: * sys/dshowdecwrapper/gstdshowvideodec.cpp: * sys/dshowdecwrapper/gstdshowvideodec.h: Prefer known-good filters, create directly by GUID if possible, fall back to creating highest-merit filter otherwise. Fixes playback with random dshow filters installed in some cases.
2008-09-17sys/dvb/gstdvbsrc.c: Add adapter_name for bus message in ATSC case. Fixes ↵Michael Krufky1-1/+2
#552536. Original commit message from CVS: patch by: Michael Krufky * sys/dvb/gstdvbsrc.c: Add adapter_name for bus message in ATSC case. Fixes #552536.
2008-09-10sys/dshowdecwrapper/: Major rewrite of dshowdecwrapper. Converts code toMichael Smith10-16/+2840
Original commit message from CVS: * sys/dshowdecwrapper/Makefile.am: * sys/dshowdecwrapper/gstdshowaudiodec.c: * sys/dshowdecwrapper/gstdshowaudiodec.cpp: * sys/dshowdecwrapper/gstdshowaudiodec.h: * sys/dshowdecwrapper/gstdshowdecwrapper.c: * sys/dshowdecwrapper/gstdshowdecwrapper.cpp: * sys/dshowdecwrapper/gstdshowdecwrapper.h: * sys/dshowdecwrapper/gstdshowfakesrc.cpp: * sys/dshowdecwrapper/gstdshowfakesrc.h: * sys/dshowdecwrapper/gstdshowutil.cpp: * sys/dshowdecwrapper/gstdshowutil.h: * sys/dshowdecwrapper/gstdshowvideodec.c: * sys/dshowdecwrapper/gstdshowvideodec.cpp: * sys/dshowdecwrapper/gstdshowvideodec.h: Major rewrite of dshowdecwrapper. Converts code to C++, moves to direct use of DirectShow base classes, make a lot of code clearer, simplify, etc. Fix decode of MP3 on Vista by working around an apparent bug in the decoder.
2008-09-10sys/winks/gstksclock.c (gst_ks_clock_worker_thread_func, gst_ks_clock_start):Ole André Vadla Ravnås2-13/+14
Original commit message from CVS: * sys/winks/gstksclock.c (gst_ks_clock_worker_thread_func, gst_ks_clock_start): Synchronize KS clock as a single-shot operation for now, there's not much point in doing it periodically until we're actually using the KS timestamps for anything else than just discarding old frames. * sys/winks/gstksvideosrc.c (gst_ks_video_src_open_device): Provide the GstClock when opening the device if we already have one.
2008-09-09sys/winks/gstksvideodevice.c (GST_DEBUG_IS_ENABLED, last_timestamp, ↵Ole André Vadla Ravnås4-111/+323
gst_ks_video_device_prepare_buffers, gst_ks_video... Original commit message from CVS: * sys/winks/gstksvideodevice.c (GST_DEBUG_IS_ENABLED, last_timestamp, gst_ks_video_device_prepare_buffers, gst_ks_video_device_create_pin, gst_ks_video_device_set_state, gst_ks_video_device_request_frame, gst_ks_video_device_read_frame): Guard against capturing old frames by keeping track of the last timestamp and also zero-fill the buffers before each capture. Only assign a master clock if the pin hasn't already got one. Actually free buffers on the way down to avoid a huge memory leak, as this was previously done when changing state to ACQUIRE downwards and we now skip that state on the way down. Add some debug. * sys/winks/gstksvideosrc.c (DEFAULT_DEVICE_PATH, DEFAULT_DEVICE_NAME, DEFAULT_DEVICE_INDEX, KS_WORKER_LOCK, KS_WORKER_UNLOCK, KS_WORKER_WAIT, KS_WORKER_NOTIFY, KS_WORKER_WAIT_FOR_RESULT, KS_WORKER_NOTIFY_RESULT, KS_WORKER_STATE_STARTING, KS_WORKER_STATE_READY, KS_WORKER_STATE_STOPPING, KS_WORKER_STATE_ERROR, KsWorkerState, device_path, device_name, device_index, running, worker_thread, worker_lock, worker_notify_cond, worker_result_cond, worker_state, worker_pending_caps, worker_setcaps_result, worker_pending_run, worker_run_result, gst_ks_video_src_reset, gst_ks_video_src_apply_driver_quirks, gst_ks_video_src_open_device, gst_ks_video_src_close_device, gst_ks_video_src_worker_func, gst_ks_video_src_start_worker, gst_ks_video_src_stop_worker, gst_ks_video_src_change_state, gst_ks_video_src_set_clock, gst_ks_video_src_set_caps, gst_ks_video_src_timestamp_buffer, gst_ks_video_src_create): Remove ENABLE_CLOCK_DEBUG define, it's GST_LEVEL_DEBUG after all. Get rid of PROP_ENSLAVE_KSCLOCK and always slave the ks clock to the GStreamer clock, it doesn't seem to hurt and matches DirectShow's behavior. As an added bonus we usually get PresentationTime set for each frame, so we can expand on this later for smarter latency reporting (by looking at the diff between the timestamp from the driver and the time according to the GStreamer clock). Use an internal worker thread for opening the device, setting caps, changing its state and closing it. This way we're a lot more compatible with drivers that rely on hacks to do video-effects between the low-level NT API and the application. Ick. Start the ks clock and set the pin to KSSTATE_RUN on the first create() so that we'll hopefully get hold of the GStreamer clock from the very beginning. This way there's no chance that the timestamps will make a sudden jump in the beginning of the stream when we're running with a clock. * sys/winks/kshelpers.c (CHECK_OPTIONS_FLAG, ks_options_flags_to_string): Reorder the flags to match the headerfile order, and make the string a bit more compact. * sys/winks/ksvideohelpers.c (ks_video_probe_filter_for_caps): Avoid leaking KSPROPERTY_PIN_DATARANGES.
2008-09-05sys/dvb/gstdvbsrc.c: Add DVB Adapter name to structure sent over bus.Sebastian Pölsterl1-1/+8
Original commit message from CVS: patch by: Sebastian Pölsterl * sys/dvb/gstdvbsrc.c: Add DVB Adapter name to structure sent over bus.
2008-08-28sys/winks/ksvideohelpers.c (ks_video_media_type_free): Avoid leaking the ↵Ole André Vadla Ravnås1-2/+6
KSDATARANGE member of each KsVideoMediaType. Original commit message from CVS: * sys/winks/ksvideohelpers.c (ks_video_media_type_free): Avoid leaking the KSDATARANGE member of each KsVideoMediaType.
2008-08-27sys/winks/gstksvideodevice.c (gst_ks_video_device_class_init, ↵Ole André Vadla Ravnås2-47/+77
gst_ks_video_device_set_state): Original commit message from CVS: * sys/winks/gstksvideodevice.c (gst_ks_video_device_class_init, gst_ks_video_device_set_state): Don't set the pin state to KSSTATE_RUN from the streaming thread. Skip KSSTATE_ACQUIRE when changing pin state downwards. Be nice and specify G_PARAM_STATIC_STRINGS. Remove unused finalize method. * sys/winks/gstksvideosrc.c (DEFAULT_ENABLE_QUIRKS, PROP_ENABLE_QUIRKS, enable_quirks, gst_ks_video_src_class_init, gst_ks_video_src_init, gst_ks_video_src_finalize, gst_ks_video_src_get_property, gst_ks_video_src_set_property, gst_ks_video_src_reset, gst_ks_video_src_apply_driver_quirks, gst_ks_video_src_change_state, gst_ks_video_src_set_caps): First driver quirk: work around Logitech's hostile driver software to improve stability and performance. See comments for details. Provide a property to disable driver quirks (enabled by default). Be nice and specify G_PARAM_STATIC_STRINGS. Remove unused dispose method. Tweak include order.
2008-08-24New plugin for low-latency video capture on Windows (#519935).Ole André Vadla Ravnås12-1/+3655
Original commit message from CVS: * configure.ac: * sys/Makefile.am: * sys/winks/Makefile.am: * sys/winks/gstksclock.c: * sys/winks/gstksclock.h: * sys/winks/gstksvideodevice.c: * sys/winks/gstksvideodevice.h: * sys/winks/gstksvideosrc.c: * sys/winks/gstksvideosrc.h: * sys/winks/kshelpers.c: * sys/winks/kshelpers.h: * sys/winks/ksvideohelpers.c: * sys/winks/ksvideohelpers.h: New plugin for low-latency video capture on Windows (#519935). Uses Kernel Streaming, the lowest level API for doing video capture on Windows (more or less just raw ioctls).
2008-08-24Added documentation blobs. Thanks to Stefan for noticing!Ole André Vadla Ravnås2-0/+47
Original commit message from CVS: * gst/pcapparse/gstpcapparse.c: * sys/winscreencap/gstdx9screencapsrc.c: * sys/winscreencap/gstgdiscreencapsrc.c: Added documentation blobs. Thanks to Stefan for noticing!
2008-08-24New plugin: winscreencap (#463941).Haakon Sporsheim8-1/+1405
Original commit message from CVS: patch by: Haakon Sporsheim <hakon.sporsheim@tandberg.com> * configure.ac: * sys/Makefile.am: * sys/winscreencap/Makefile.am: * sys/winscreencap/gstdx9screencapsrc.c: * sys/winscreencap/gstdx9screencapsrc.h: * sys/winscreencap/gstgdiscreencapsrc.c: * sys/winscreencap/gstgdiscreencapsrc.h: * sys/winscreencap/gstwinscreencap.c: * sys/winscreencap/gstwinscreencap.h: New plugin: winscreencap (#463941).
2008-08-23sys/dshowdecwrapper/gstdshowaudiodec.c: Flip mpeg1/mpeg2 arrays for mpeg ↵Michael Smith1-15/+14
audio. Detect which type the audio is correc... Original commit message from CVS: * sys/dshowdecwrapper/gstdshowaudiodec.c: Flip mpeg1/mpeg2 arrays for mpeg audio. Detect which type the audio is correctly, instead of backwards. No functional changes, since this mistake was completely self-consistent.
2008-08-20Add new windows ACM encoder wrapper.Michael Smith3-2/+618
Original commit message from CVS: * configure.ac: * sys/Makefile.am: * sys/acmenc/Makefile.am: * sys/acmenc/acmenc.c: Add new windows ACM encoder wrapper.