/*****************************************************************************
* Preamble
*****************************************************************************/
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
#include <vlc/vlc.h>
-#include <vlc/decoder.h>
-#include <vlc/vout.h>
+#include <vlc_codec.h>
+#include <vlc_vout.h>
+#include <vlc_aout.h>
#ifndef WIN32
# define LOADER
# include <wine/windef.h>
#endif
-#include "codecs.h"
+#include <vlc_codecs.h>
#include "dmo.h"
//#define DMO_DEBUG 1
};
static const GUID guid_wvc1 = { 0xc9bfbccf, 0xe60e, 0x4588, { 0xa3, 0xdf, 0x5a, 0x03, 0xb1, 0xfd, 0x95, 0x85 } };
-
static const GUID guid_wmv9 = { 0x724bb6a4, 0xe526, 0x450f, { 0xaf, 0xfa, 0xab, 0x9b, 0x45, 0x12, 0x91, 0x11 } };
-static const GUID guid_wma9 = { 0x27ca0808, 0x01f5, 0x4e7a, { 0x8b, 0x05, 0x87, 0xf8, 0x07, 0xa2, 0x33, 0xd1 } };
static const GUID guid_wmv = { 0x82d353df, 0x90bd, 0x4382, { 0x8b, 0xc2, 0x3f, 0x61, 0x92, 0xb7, 0x6e, 0x34 } };
+static const GUID guid_wms = { 0x7bafb3b1, 0xd8f4, 0x4279, { 0x92, 0x53, 0x27, 0xda, 0x42, 0x31, 0x08, 0xde } };
+static const GUID guid_wmva ={ 0x03be3ac4, 0x84b7, 0x4e0e, { 0xa7, 0x8d, 0xd3, 0x52, 0x4e, 0x60, 0x39, 0x5a } };
+
static const GUID guid_wma = { 0x874131cb, 0x4ecc, 0x443b, { 0x89, 0x48, 0x74, 0x6b, 0x89, 0x59, 0x5d, 0x20 } };
+static const GUID guid_wma9 = { 0x27ca0808, 0x01f5, 0x4e7a, { 0x8b, 0x05, 0x87, 0xf8, 0x07, 0xa2, 0x33, 0xd1 } };
static const GUID guid_wmv_enc = { 0x3181343b, 0x94a2, 0x4feb, { 0xad, 0xef, 0x30, 0xa1, 0xdd, 0xe6, 0x17, 0xb4 } };
static const GUID guid_wma_enc = { 0x70f598e9, 0xf4ab, 0x495a, { 0x99, 0xe2, 0xa7, 0xc4, 0xd3, 0xd8, 0x9a, 0xbf } };
{ VLC_FOURCC('w','v','c','1'), "wvc1dmod.dll", &guid_wvc1 },
/* WMV3 */
{ VLC_FOURCC('W','M','V','3'), "wmv9dmod.dll", &guid_wmv9 },
+ { VLC_FOURCC('W','M','V','P'), "wmv9dmod.dll", &guid_wmv9 },
{ VLC_FOURCC('w','m','v','3'), "wmv9dmod.dll", &guid_wmv9 },
/* WMV2 */
{ VLC_FOURCC('W','M','V','2'), "wmvdmod.dll", &guid_wmv },
/* WMV1 */
{ VLC_FOURCC('W','M','V','1'), "wmvdmod.dll", &guid_wmv },
{ VLC_FOURCC('w','m','v','1'), "wmvdmod.dll", &guid_wmv },
+ /* Screen codecs */
+ { VLC_FOURCC('M','S','S','1'), "wmsdmod.dll", &guid_wms },
+ { VLC_FOURCC('M','S','S','2'), "wmsdmod.dll", &guid_wms },
+ /* Windows Media Video Adv */
+ { VLC_FOURCC('W','M','V','A'), "wmvadvd.dll", &guid_wmva },
+ { VLC_FOURCC('W','V','P','2'), "wmvadvd.dll", &guid_wmva },
/* WMA 3 */
{ VLC_FOURCC('W','M','A','3'), "wma9dmod.dll", &guid_wma9 },
{
if( i_result != S_FALSE )
msg_Dbg( p_dec, "ProcessOutput(): failed" );
-#if DMO_DEBUG
+#ifdef DMO_DEBUG
else
msg_Dbg( p_dec, "ProcessOutput(): no output" );
#endif
return NULL;
}
-#if DMO_DEBUG
+#ifdef DMO_DEBUG
msg_Dbg( p_dec, "ProcessOutput(): success" );
#endif
if( !block_out.i_buffer )
{
-#if DMO_DEBUG
+#ifdef DMO_DEBUG
msg_Dbg( p_dec, "ProcessOutput(): no output (i_buffer_out == 0)" );
#endif
p_out->vt->Release( (IUnknown *)p_out );
for( i_line = 0; i_line < p_pic->p[i_plane].i_visible_lines; i_line++ )
{
- p_dec->p_vlc->pf_memcpy( p_dst, p_src, i_width );
+ p_dec->p_libvlc->pf_memcpy( p_dst, p_src, i_width );
p_src += i_width;
p_dst += i_dst_stride;
}
BITMAPINFOHEADER *p_bih;
/* FIXME */
- p_enc->fmt_in.video.i_bits_per_pixel =
+ p_enc->fmt_in.video.i_bits_per_pixel =
p_enc->fmt_out.video.i_bits_per_pixel = 12;
/* Enumerate input format (for debug output) */
if( i_selected < 0 )
{
- msg_Err( p_enc, "couldn't find a matching ouput" );
+ msg_Err( p_enc, "couldn't find a matching output" );
return VLC_EGENERIC;
}
for( i_line = 0; i_line < p_pic->p[i_plane].i_visible_lines;
i_line++ )
{
- p_enc->p_vlc->pf_memcpy( p_dst, p_src, i_width );
+ p_enc->p_libvlc->pf_memcpy( p_dst, p_src, i_width );
p_dst += i_width;
p_src += i_src_stride;
}
return NULL;
}
-#if DMO_DEBUG
+#ifdef DMO_DEBUG
msg_Dbg( p_enc, "ProcessInput(): success" );
#endif
{
if( i_result != S_FALSE )
msg_Dbg( p_enc, "ProcessOutput(): failed: %x", i_result );
-#if DMO_DEBUG
+#ifdef DMO_DEBUG
else
msg_Dbg( p_enc, "ProcessOutput(): no output" );
#endif
if( !p_block_out->i_buffer )
{
-#if DMO_DEBUG
+#ifdef DMO_DEBUG
msg_Dbg( p_enc, "ProcessOutput(): no output (i_buffer_out == 0)" );
#endif
p_out->vt->Release( (IUnknown *)p_out );
if( db.dwStatus & DMO_OUTPUT_DATA_BUFFERF_TIME )
{
-#if DMO_DEBUG
+#ifdef DMO_DEBUG
msg_Dbg( p_enc, "ProcessOutput(): pts: "I64Fd", "I64Fd,
i_pts, db.rtTimestamp / 10 );
#endif
if( db.dwStatus & DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH )
{
p_block_out->i_length = db.rtTimelength / 10;
-#if DMO_DEBUG
+#ifdef DMO_DEBUG
msg_Dbg( p_enc, "ProcessOutput(): length: "I64Fd,
p_block_out->i_length );
#endif