vlc for windows(support RV40), but "Cook Audio" problem....

Microsoft Windows specific usage questions
Forum rules
Please post only Windows specific questions in this forum category. If you don't know where to post, please read the different forums' rules. Thanks.
yuehua_zhao123
New Cone
New Cone
Posts: 6
Joined: 01 Nov 2007 04:25
VLC version: 0.8.6c
Operating System: Windows
Location: China shenzhen

vlc for windows(support RV40), but "Cook Audio" problem....

Postby yuehua_zhao123 » 05 Nov 2007 07:13

// modules\codec\realvideo.c


#include <vlc/vlc.h>
#include <vlc/aout.h>
#include <vlc/vout.h>
#include <vlc/decoder.h>
#ifndef WIN32
#include <dlfcn.h>
#endif

/* for windows do we require Quicktime compents header? */
#if defined(LOADER) && defined(WIN32)
#include "wine/windef.h"
#include "ldt_keeper.h"

HMODULE WINAPI LoadLibraryA(LPCSTR);
FARPROC WINAPI GetProcAddress(HMODULE,LPCSTR);
int WINAPI FreeLibrary(HMODULE);
#endif

typedef struct cmsg_data_s
{
uint32_t data1;
uint32_t data2;
uint32_t* dimensions;
} cmsg_data_t;

typedef struct transform_in_s
{
uint32_t len;
uint32_t unknown1;
uint32_t chunks;
uint32_t* extra;
uint32_t unknown2;
uint32_t timestamp;
} transform_in_t;

// copypaste from demux_real.c - it should match to get it working!
typedef struct dp_hdr_s
{
uint32_t chunks; // number of chunks
uint32_t timestamp; // timestamp from packet header
uint32_t len; // length of actual data
uint32_t chunktab; // offset to chunk offset array
} dp_hdr_t;

/* we need exact positions */
struct rv_init_t
{
short unk1;
short w;
short h;
short unk3;
int unk2;
int subformat;
int unk5;
int format;
} rv_init_t;

struct decoder_sys_t
{
/* library */
#ifdef LOADER
ldt_fs_t *ldt_fs;
#endif
void *handle;
void *rv_handle;
int inited;
char *plane;
};

int dll_type = 1;
#ifdef WIN32
const char *g_decode_path="plugins\\drv43260.dll";
#else
const char *g_decode_path="../lib/vlc/codec/drv4.so.6.0";
#endif

static unsigned long (*rvyuv_custom_message)(cmsg_data_t* ,void*);
static unsigned long (*rvyuv_free)(void*);
static unsigned long (*rvyuv_hive_message)(unsigned long,unsigned long);
static unsigned long (*rvyuv_init)(void*, void*); // initdata,context
static unsigned long (*rvyuv_transform)(char*, char*,transform_in_t*,unsigned int*,void*);
#ifdef WIN32
static unsigned long WINAPI (*wrvyuv_custom_message)(cmsg_data_t* ,void*);
static unsigned long WINAPI (*wrvyuv_free)(void*);
static unsigned long WINAPI (*wrvyuv_hive_message)(unsigned long,unsigned long);
static unsigned long WINAPI (*wrvyuv_init)(void*, void*); // initdata,context
static unsigned long WINAPI (*wrvyuv_transform)(char*, char*,transform_in_t*,unsigned int*,void*);
#endif
/*****************************************************************************
* Module descriptor
*****************************************************************************/
static int Open ( vlc_object_t * );
static void Close( vlc_object_t * );

static int OpenPacketizer( vlc_object_t * );
static picture_t *DecodeVideo( decoder_t *, block_t ** );

vlc_module_begin();
set_description( _("RealVideo library decoder") );
set_capability( "decoder", 10 );
set_category( CAT_INPUT );
set_subcategory( SUBCAT_INPUT_VCODEC );
set_callbacks( Open, Close );
vlc_module_end();


/*****************************************************************************
* Local prototypes
*****************************************************************************/

#ifdef WIN32
static void * load_syms(decoder_t *p_dec, char *path)
{
void *handle;

msg_Dbg( p_dec, "opening win32 dll '%s'\n", path);
#ifdef LOADER
Setup_LDT_Keeper();
#endif
handle = LoadLibraryA(path);
msg_Dbg( p_dec, "win32 real codec handle=%p \n",handle);
if (!handle)
{
msg_Err( p_dec, "Error loading dll\n");
return NULL;
}

wrvyuv_custom_message = GetProcAddress(handle, "RV20toYUV420CustomMessage");
wrvyuv_free = GetProcAddress(handle, "RV20toYUV420Free");
wrvyuv_init = GetProcAddress(handle, "RV20toYUV420Init");
wrvyuv_transform = GetProcAddress(handle, "RV20toYUV420Transform");

if (wrvyuv_custom_message && wrvyuv_free && wrvyuv_init && wrvyuv_transform)
{
dll_type = 1;
return handle;
}
msg_Err( p_dec, "Error resolving symbols! (version incompatibility?)\n");
FreeLibrary(handle);
return NULL; // error
}
#else
static int load_syms_linux(decoder_t *p_dec, char *path)
{
void *handle;

msg_Dbg( p_dec, "opening shared obj '%s'\n", path);

handle = dlopen (path, RTLD_LAZY);
if (!handle)
{
msg_Err( p_dec,"Error: %s\n",dlerror());
return NULL;
}

rvyuv_custom_message = dlsym(handle, "RV20toYUV420CustomMessage");
rvyuv_free = dlsym(handle, "RV20toYUV420Free");
rvyuv_init = dlsym(handle, "RV20toYUV420Init");
rvyuv_transform = dlsym(handle, "RV20toYUV420Transform");

if(rvyuv_custom_message && rvyuv_free && rvyuv_init && rvyuv_transform)
{
dll_type = 0;
return handle;
}

msg_Err( p_dec,"Error resolving symbols! (version incompatibility?)\n");
dlclose(handle);
return 0;
}
#endif

static int InitVideo(decoder_t *p_dec)
{
int result;
struct rv_init_t init_data;
char fcc[4];
vlc_value_t lockval;
int i_vide = p_dec->fmt_in.i_extra;
unsigned int *p_vide = p_dec->fmt_in.p_extra;
decoder_sys_t *p_sys = malloc( sizeof( decoder_sys_t ) );

if( i_vide <= 0 )
{
msg_Err( p_dec, "missing extra info" );
free( p_sys );
return VLC_EGENERIC;
}
p_sys->plane = malloc (p_dec->fmt_in.video.i_width*p_dec->fmt_in.video.i_height*3+1024);
if (NULL == p_sys->plane)
{
msg_Err( p_dec, "cannot alloc plane buffer" );
free( p_sys );
return VLC_EGENERIC;
}

p_dec->p_sys = p_sys;
p_dec->pf_decode_video = DecodeVideo;

memcpy( fcc, &p_dec->fmt_in.i_codec, 4 );
// msg_Dbg( p_dec, "real_video %4.4s %dx%d", fcc, p_dec->fmt_in.video.i_width, p_dec->fmt_in.video.i_height );
init_data.unk1 = 11;
init_data.w = p_dec->fmt_in.video.i_width;
init_data.h = p_dec->fmt_in.video.i_height;
init_data.unk3 = 0;
init_data.unk2 = 0;
init_data.subformat = p_vide[0];
init_data.unk5 = 1;
init_data.format = p_vide[1];

// msg_Dbg( p_dec, "real_video codec id:0x%08x sub-id:0x%08x", p_vide[1], p_vide[0]);
/* first try to load linux dlls, if failed and we're supporting win32 dlls,
then try to load the windows ones */
if ( NULL== (p_sys->rv_handle = load_syms(p_dec, g_decode_path)) )
{
msg_Err( p_dec, "Cannot load real decoder library: %s", g_decode_path);
free( p_sys );
return VLC_EGENERIC;
}

var_Get( p_dec->p_libvlc, "rm_mutex", &lockval );
vlc_mutex_lock( lockval.p_address );

p_sys->handle=NULL;
#ifdef WIN32
if (dll_type == 1)
result=(*wrvyuv_init)(&init_data, &p_sys->handle);
else
#endif
result=(*rvyuv_init)(&init_data, &p_sys->handle);
if (result)
{
msg_Err( p_dec, "Cannot Init real decoder library: %s", g_decode_path);
free( p_sys );
return VLC_EGENERIC;
}
// setup rv30 codec (codec sub-type and image dimensions):
//if ( p_dec->fmt_in.i_codec == VLC_FOURCC('R','V','3','0') )
if (p_vide[1]>=0x20200002)
{
// We could read nonsense data while filling this, but input is big enough so no sig11
uint32_t cmsg24[10]=
{p_dec->fmt_in.video.i_width,p_dec->fmt_in.video.i_width,
((unsigned char *)p_vide)[8]*4,((unsigned char *)p_vide)[9]*4,
((unsigned char *)p_vide)[10]*4,((unsigned char *)p_vide)[11]*4,
((unsigned char *)p_vide)[12]*4,((unsigned char *)p_vide)[13]*4,
((unsigned char *)p_vide)[14]*4,((unsigned char *)p_vide)[15]*4
};
cmsg_data_t cmsg_data={0x24,1+((p_vide[0]>>16)&7), &cmsg24[0]};

#ifdef WIN32
if (dll_type == 1)
(*wrvyuv_custom_message)(&cmsg_data,p_sys->handle);
else
#endif
(*rvyuv_custom_message)(&cmsg_data,p_sys->handle);
}

// es_format_Init( &p_dec->fmt_out, VIDEO_ES, VLC_FOURCC( 'Y', 'U', 'Y', '2' ));
es_format_Init( &p_dec->fmt_out, VIDEO_ES, VLC_FOURCC( 'I', '4', '2', '0' ));

p_dec->fmt_out.video.i_width = p_dec->fmt_in.video.i_width;
p_dec->fmt_out.video.i_height= p_dec->fmt_in.video.i_height;
p_dec->fmt_out.video.i_aspect = VOUT_ASPECT_FACTOR * p_dec->fmt_in.video.i_width / p_dec->fmt_in.video.i_height;
p_sys->inited = 0;

vlc_mutex_unlock( lockval.p_address );
return VLC_SUCCESS;
}

/*****************************************************************************
* Open: probe the decoder and return score
*****************************************************************************
* Tries to launch a decoder and return score so that the interface is able
* to choose.
*****************************************************************************/
static int Open( vlc_object_t *p_this )
{
decoder_t *p_dec = (decoder_t*)p_this;

/* create a mutex */
var_Create( p_this->p_libvlc, "rm_mutex", VLC_VAR_MUTEX );

switch ( p_dec->fmt_in.i_codec )
{
case VLC_FOURCC('R','V','1','0'):
case VLC_FOURCC('R','V','2','0'):
case VLC_FOURCC('R','V','3','0'):
case VLC_FOURCC('R','V','4','0'):
p_dec->p_sys = NULL;
p_dec->pf_decode_video = DecodeVideo;
return InitVideo(p_dec);

default:
return VLC_EGENERIC;
}
}

/*****************************************************************************
* Close:
*****************************************************************************/
static void Close( vlc_object_t *p_this )
{
decoder_t *p_dec = (decoder_t*)p_this;
decoder_sys_t *p_sys = p_dec->p_sys;
vlc_value_t lockval;

/* get lock, avoid segfault */
var_Get( p_dec->p_libvlc, "rm_mutex", &lockval );
vlc_mutex_lock( lockval.p_address );

#ifdef WIN32
if (dll_type == 1)
{
if (wrvyuv_free)
wrvyuv_free(p_sys->handle);
}
else
#endif
if (rvyuv_free)
rvyuv_free(p_sys->handle);

if (dll_type == 1)
{
if (p_sys->rv_handle)
FreeLibrary(p_sys->rv_handle);
}
else
p_sys->rv_handle=NULL;

if (p_sys->plane)
{
free(p_sys->plane);
p_sys->plane = NULL;
}

msg_Dbg( p_dec, "FreeLibrary ok." );
#ifdef LOADER
Restore_LDT_Keeper( p_sys->ldt_fs );
msg_Dbg( p_dec, "Restore_LDT_Keeper" );
#endif
p_sys->inited = 0;

vlc_mutex_unlock( lockval.p_address );
var_Destroy( p_dec->p_libvlc, "rm_mutex" );

if ( p_sys )
free( p_sys );
}

/*****************************************************************************
* DecodeVideo:
*****************************************************************************/
static picture_t *DecodeVideo( decoder_t *p_dec, block_t **pp_block )
{
decoder_sys_t *p_sys = p_dec->p_sys;
vlc_value_t lockval;
block_t *p_block;
picture_t *p_pic;
mtime_t i_pts;
int result;

/* We must do open and close in the same thread (unless we do
* Setup_LDT_Keeper in the main thread before all others */
if ( p_sys == NULL )
{
p_dec->pf_decode_video = DecodeVideo;
if ( InitVideo(p_dec) != VLC_EGENERIC )
{
/* Fatal */
p_dec->b_error = VLC_TRUE;
return NULL;
}
p_sys = p_dec->p_sys;
}

if ( pp_block == NULL || *pp_block == NULL )
{
return NULL;
}
p_block = *pp_block;
*pp_block = NULL;

i_pts = p_block->i_pts ? p_block->i_pts : p_block->i_dts;

// msg_Dbg( p_dec, "spine print bufsize: %d, p_block->i_pts=%d, p_block->i_dts=%d",
// p_block->i_buffer, p_block->i_pts, p_block->i_dts);

var_Get( p_dec->p_libvlc, "rm_mutex", &lockval );
vlc_mutex_lock( lockval.p_address );

p_pic = p_dec->pf_vout_buffer_new( p_dec );

if ( p_pic )
{
unsigned int transform_out[5];
dp_hdr_t dp_hdr;
transform_in_t transform_in;
uint32_t pkg_len = ((uint32_t*)p_block->p_buffer)[0];
unsigned char* dp_data=((unsigned char*)p_block->p_buffer)+8;
uint32_t* extra=(uint32_t*)(((char*)p_block->p_buffer)+12+pkg_len);

// i_pts = ((uint32_t*)(p_block->p_buffer+pkg_len+8))[0];

dp_hdr.len = pkg_len;
dp_hdr.chunktab = 12 + pkg_len;
dp_hdr.chunks = ((uint32_t*)p_block->p_buffer)[1]-1;
dp_hdr.timestamp = i_pts;

memset(&transform_in, 0, sizeof(transform_in_t));

transform_in.len = dp_hdr.len;
transform_in.extra = extra;
transform_in.chunks = dp_hdr.chunks;
transform_in.timestamp = dp_hdr.timestamp;

// msg_Dbg( p_dec, "spine print dp_hdr.chunks:%d, dp_hdr.timestamp:%d, dp_hdr.len:%d, dp_hdr.chunktab:%d",
// dp_hdr.chunks,dp_hdr.timestamp,dp_hdr.len,dp_hdr.chunktab);
memset (p_sys->plane, 0, p_dec->fmt_in.video.i_width * p_dec->fmt_in.video.i_height *3+1024);

#ifdef WIN32
if (dll_type == 1)
result=(*wrvyuv_transform)(dp_data, p_sys->plane, &transform_in, transform_out, p_sys->handle);
else
#endif
result=(*rvyuv_transform)(dp_data, p_sys->plane, &transform_in, transform_out, p_sys->handle);

memcpy( p_pic->p[0].p_pixels, p_sys->plane, p_dec->fmt_in.video.i_width * p_dec->fmt_in.video.i_height *3/2 );
// msg_Dbg( p_dec, "spine print real video decoding bufsize: %d", p_dec->fmt_in.video.i_width * p_dec->fmt_in.video.i_height * 2);

// memcpy( p_pic->p[0].p_pixels, p_sys->plane, p_dec->fmt_in.video.i_width * p_dec->fmt_in.video.i_height * 2);
p_pic->date = i_pts;
}

vlc_mutex_unlock( lockval.p_address );

block_Release( p_block );
return p_pic;
}

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: vlc for windows(support RV40), but "Cook Audio" problem....

Postby Jean-Baptiste Kempf » 05 Nov 2007 18:36

Hello,

Could you provide this in a patch form ?

Best,
jb
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: vlc for windows(support RV40), but "Cook Audio" problem....

Postby Jean-Baptiste Kempf » 06 Nov 2007 06:55

ok. I disagree on some part of the patch.

1. static int load_syms_linux
* l.157, it should return 0 and not NULL.
* l.168 it shouldn't return a void* in a int function

Maybe the function should be of a void* type.

2. Line 218, it calls 'load_syms' which is just defined on windows and not linux.

3. l.93 is useless.

4. rvyuv_hive_message is useless (l.83)
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: vlc for windows(support RV40), but "Cook Audio" problem....

Postby Jean-Baptiste Kempf » 06 Nov 2007 07:30

I made small modifications according to my remarks on http://people.videolan.org/~jb/realvideo.c
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

yuehua_zhao123
New Cone
New Cone
Posts: 6
Joined: 01 Nov 2007 04:25
VLC version: 0.8.6c
Operating System: Windows
Location: China shenzhen

Re: vlc for windows(support RV40), but "Cook Audio" problem....

Postby yuehua_zhao123 » 06 Nov 2007 10:08

Thanks a lot for your help. After complied successfully, VLC can support rmvb format.
But, when playing media file of "cook audio" rmvb format, voice sounds desultory. And, playing media file of "audio mp4a "format is all right. I think that there is some thing wrong in "demux/real.c", but I can't find where it is. Here is the debugging information:

main debug: adding playlist item `E:\vod_server\prison-break.rmvb' ( E:\vod_server\prison-break.rmvb )
main debug: creating statistics handler
main debug: creating new input thread
main debug: waiting for thread completion
main debug: thread 4240 (input) created at priority 1 (input/input.c:265)
main debug: drive letter E: found in source
main debug: `E:\vod_server\prison-break.rmvb' gives access `' demux `' path `E:\vod_server\prison-break.rmvb'
main debug: creating demux: access='' demux='' path='E:\vod_server\prison-break.rmvb'
main debug: looking for access_demux module: 1 candidate
main debug: creating access '' path='E:\vod_server\prison-break.rmvb'
main debug: looking for access2 module: 4 candidates
vcd debug: trying .cue file: E:\vod_server\prison-break.cue
vcd debug: could not find .cue file
access_file debug: opening file `E:\vod_server\prison-break.rmvb'
main debug: using access2 module "access_file"
main debug: pre-buffering...
main debug: received first data for our buffer
main debug: pre-buffering done 1408981 bytes in 0s - 327999 kbytes/s
main debug: creating demux: access='' demux='' path='E:\vod_server\prison-break.rmvb'
main debug: looking for demux2 module: 45 candidates
real debug: object .RMF size=18 version=1
real debug: - file version=0x0 num headers=7
real debug: object PROP size=50 version=0
real debug: - max bitrate=900000 avg bitrate=552495
real debug: - max packet size=1342 avg bitrate=838
real debug: - packets count=215400
real debug: - duration=2596797 ms
real debug: - preroll=21632 ms
real debug: - index offset=183175112
real debug: - data offset=1089
real debug: - num streams=3
real debug: - flags=0x9 PN_SAVE_ENABLED
real debug: object CONT size=111 version=0
real debug:
real debug:
real debug:
real debug: object MDPR size=172 version=0
real debug: - id=0x0
real debug: - max bitrate=64082 avg bitrate=64082
real debug: - max packet size=930 avg packet size=930
real debug: - start time=0
real debug: - preroll=1857
real debug: - duration=2596918
real debug: - name=`Audio Stream'
real debug: - mime=`audio/x-pn-realaudio'
real debug: - specific data len=94
real debug: - audio version=5
real debug: - audio codec=cook channels=2 rate=44100Hz
real debug: - extra data=16
main debug: selecting program id=0
real debug: object MDPR size=112 version=0
real debug: - id=0x1
real debug: - max bitrate=835918 avg bitrate=488413
real debug: - max packet size=1342 avg packet size=827
real debug: - start time=0
real debug: - preroll=21632
real debug: - duration=2596633
real debug: - name=`Video Stream'
real debug: - mime=`video/x-pn-realvideo'
real debug: - specific data len=34
real debug: - video 0x01081020 0x40004000
real debug: - video RV40 624x352
real debug: object MDPR size=626 version=0
real debug: - id=0x2
real debug: - max bitrate=0 avg bitrate=0
real debug: - max packet size=0 avg packet size=0
real debug: - start time=0
real debug: - preroll=0
real debug: - duration=0
real debug: - mime=`logical-fileinfo'
real debug: - specific data len=564
real debug: object DATA size=183174023 version=0
real debug: - packets count=215400 next=0
main debug: using demux2 module "real"
main debug: looking for a subtitle file in E:\vod_server\
main debug: looking for decoder module: 28 candidates
ffmpeg debug: libavcodec initialized (interface 3349504 )
ffmpeg debug: ffmpeg codec (Cook Audio) started
main debug: using decoder module "ffmpeg"
main debug: thread 4312 (decoder) created at priority 2 (input/decoder.c:159)
main debug: looking for decoder module: 28 candidates
realvideo debug: opening win32 dll 'plugins\drv43260.dll'

realvideo debug: win32 real codec handle=63410000

main debug: using decoder module "realvideo"
main debug: thread 4396 (decoder) created at priority 0 (input/decoder.c:159)
main debug: meta information:
main debug:
main debug:
main debug:
main debug: `E:\vod_server\prison-break.rmvb' successfully opened
main debug: no aout present, spawning one
main debug: looking for audio output module: 3 candidates
aout_directx debug: OpenAudio
real debug: new frame size=1508
real debug: last fixing copy=280 offset=1228
real debug: sending size=2520
real debug: new frame size=350
main debug: no usable vout present, spawning one
real debug: last fixing copy=7 offset=343
real debug: sending size=1362
aout_directx debug:
aout_directx debug: found device: Realtek HD Audio output
real debug: new frame size=146
real debug: last fixing copy=7 offset=139
aout_directx debug: device supports 2 channels
aout_directx debug: device supports 1 channel
aout_directx debug: creating DirectSoundThread
main debug: thread 4836 (DirectSound Notification Thread) created at priority 15 (directx.c:372)
aout_directx debug: DirectSoundThread ready
main debug: using audio output module "aout_directx"
main debug: output 's16l' 44100 Hz Stereo frame=1 samples/4 bytes
main debug: mixer 'fl32' 44100 Hz Stereo frame=1 samples/8 bytes
main debug: filter(s) 'fl32'->'s16l' 44100 Hz->44100 Hz Stereo->Stereo
main debug: looking for audio filter module: 24 candidates
main debug: Registering subpicture channel, ID: 2
main debug: Registering subpicture channel, ID: 3
main debug: Registering subpicture channel, ID: 4
main debug: Registering subpicture channel, ID: 5
main debug: using audio filter module "float32tos16"
main debug: found a filter for the whole conversion
main debug: looking for audio mixer module: 3 candidates
main debug: using audio mixer module "trivial_mixer"
main debug: input 's16l' 44100 Hz Stereo frame=1 samples/4 bytes
main debug: filter(s) 's16l'->'fl32' 44100 Hz->44100 Hz Stereo->Stereo
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "s16tofloat32"
main debug: found a filter for the whole conversion
main debug: filter(s) 'fl32'->'fl32' 48510 Hz->44100 Hz Stereo->Stereo
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "bandlimited_resampler"
main debug: found a filter for the whole conversion
main debug: window size: 624x352
main debug: looking for video output module: 6 candidates
vout_directx debug: creating DirectXEventThread
main debug: waiting for thread completion
vout_directx debug: DirectXCreateWindow
real debug: sending size=1158
real debug: new frame size=294
real debug: last fixing copy=7 offset=287
real debug: sending size=1306
vout_directx debug: created video sub-window
main debug: thread 4892 (DirectX Events Thread) created at priority 0 (directx.c:278)
vout_directx debug: DirectXEventThread running
vout_directx debug: DirectXInitDDraw
vout_directx debug: directx-device:
vout_directx debug:
vout_directx debug: DirectXEnumCallback: Mobile Intel(R) 945GM Express Chipset Family, \\.\DISPLAY1
vout_directx debug: selecting Mobile Intel(R) 945GM Express Chipset Family, \\.\DISPLAY1
vout_directx debug: screen dimensions (0x0,1024x768)
vout_directx debug: DirectDraw Capabilities: overlay=1 yuvoverlay=1 can_deinterlace_overlay=1 colorkey=1 stretch=1 bltfourcc=1
vout_directx debug: End DirectXInitDDraw
vout_directx debug: DirectXCreateDisplay
real debug: new frame size=16
real debug: last fixing copy=7 offset=9
vout_directx debug: DirectXCreateClipper
vout_directx debug: disabling screen saver
main debug: using video output module "vout_directx"
vout_directx debug: NewPictureVec overlay:yes chroma:YV12
main warning: computed PTS is out of range (117531), clearing out
main warning: PTS is out of range (117545), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
real debug: sending size=1028
real debug: new frame size=277
real debug: last fixing copy=7 offset=270
real debug: sending size=1289
vout_directx debug: YUV overlay created successfully
vout_directx debug: End NewPictureVec (succeeded)
main debug: got 1 direct buffer(s)
main debug: picture in 624x352 (0,0,624x352), chroma I420, ar 382909:216000, sar 1:1
main debug: picture user 624x352 (0,0,624x352), chroma I420, ar 382909:216000, sar 1:1
main debug: picture out 624x352 (0,0,624x352), chroma I420, ar 382909:216000, sar 1:1
main debug: direct render, mapping render pictures 0-6 to system pictures 1-7
main debug: waiting for thread completion
main debug: thread 4920 (video output) created at priority 1 (video_output/video_output.c:421)
real debug: new frame size=17
real debug: last fixing copy=7 offset=10
main warning: late picture skipped (249223)
main warning: late picture skipped (146484)
main warning: late picture skipped (145494)
main warning: PTS is out of range (325759), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
real debug: sending size=1029
real debug: new frame size=3901
real debug: last fixing copy=641 offset=3260
real debug: sending size=4913
real debug: new frame size=177
real debug: last fixing copy=118 offset=59
real debug: sending size=1189
real debug: new frame size=38808
real debug: last fixing copy=449 offset=38359
real debug: sending size=39820
real debug: new frame size=11935
real debug: last fixing copy=1004 offset=10931
real debug: sending size=12947
real debug: new frame size=8924
real debug: last fixing copy=656 offset=8268
real debug: sending size=9936
real debug: new frame size=7144
real debug: last fixing copy=1159 offset=5985
main warning: PTS is out of range (538143), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
real debug: sending size=8156
real debug: new frame size=23005
real debug: last fixing copy=407 offset=22598
real debug: sending size=24017
real debug: new frame size=6560
real debug: last fixing copy=703 offset=5857
real debug: sending size=7572
real debug: new frame size=7072
real debug: last fixing copy=1181 offset=5891
real debug: sending size=8084
real debug: new frame size=7511
real debug: last fixing copy=77 offset=7434
main warning: PTS is out of range (744452), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
real debug: sending size=8523
real debug: new frame size=7952
real debug: last fixing copy=537 offset=7415
real debug: sending size=8964
main warning: late picture skipped (17114)
main warning: late picture skipped (16462)
real debug: new frame size=1453
real debug: last fixing copy=755 offset=698
real debug: sending size=2465
real debug: new frame size=1787
real debug: last fixing copy=1023 offset=764
real debug: sending size=2799
real debug: new frame size=1354
real debug: last fixing copy=699 offset=655
main warning: PTS is out of range (952657), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
real debug: sending size=2366
real debug: new frame size=10472
real debug: last fixing copy=296 offset=10176
real debug: sending size=11484
real debug: new frame size=1308
real debug: last fixing copy=803 offset=505
real debug: sending size=2320
real debug: new frame size=1184
real debug: last fixing copy=686 offset=498
real debug: sending size=2196
real debug: new frame size=795
real debug: last fixing copy=390 offset=405
real debug: sending size=1807
real debug: new frame size=4368
real debug: last fixing copy=1295 offset=3073
real debug: sending size=5380
main warning: late picture skipped (40379)
real debug: new frame size=676
real debug: last fixing copy=350 offset=326
real debug: sending size=1688
main warning: late picture skipped (39527)
real debug: new frame size=785
real debug: last fixing copy=413 offset=372
real debug: sending size=1797
real debug: new frame size=799
real debug: last fixing copy=458 offset=341
main warning: PTS is out of range (1161944), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1139220), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1116440), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1093655), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1070881), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1048100), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1025327), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1002549), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: late picture skipped (10949)
main warning: PTS is out of range (1091306), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1068290), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1045261), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1022240), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (999211), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (976183), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (953155), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (930130), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (907110), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (884082), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (861052), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (838022), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (814995), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (791975), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (768948), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (746012), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (722986), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (699959), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (676935), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (653908), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (630879), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (607850), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (584820), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (561797), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (538769), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (515739), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (492710), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (469680), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (475938), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (507937), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (484978), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (461958), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (438929), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (415967), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (392974), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (369943), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (346918), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (323886), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (300854), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (277821), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (254787), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (231761), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (208730), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (185697), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (162664), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (139633), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (116607), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (93577), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (70546), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (47514), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (24482), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1457), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (-21576), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
real debug: sending size=1811
real debug: new frame size=5743
real debug: last fixing copy=833 offset=4910
real debug: sending size=6755
real debug: new frame size=1258
real debug: last fixing copy=684 offset=574
real debug: sending size=2270
real debug: new frame size=1383
real debug: last fixing copy=781 offset=602
real debug: sending size=2395
real debug: new frame size=1098
real debug: last fixing copy=636 offset=462
real debug: sending size=2110
real debug: new frame size=18725
real debug: last fixing copy=708 offset=18017
real debug: sending size=19737
main warning: late picture skipped (25481)
real debug: new frame size=9522
real debug: last fixing copy=1288 offset=8234
real debug: sending size=10534
real debug: new frame size=7815
real debug: last fixing copy=146 offset=7669
real debug: sending size=8827
real debug: new frame size=4633
real debug: last fixing copy=798 offset=3835
real debug: sending size=5645
real debug: new frame size=17339
real debug: last fixing copy=386 offset=16953
real debug: sending size=18351
main warning: late picture skipped (7791)
real debug: new frame size=5286
real debug: last fixing copy=171 offset=5115
real debug: sending size=6298
real debug: new frame size=6911
real debug: last fixing copy=1077 offset=5834
real debug: sending size=7923
real debug: new frame size=7115
real debug: last fixing copy=987 offset=6128
real debug: sending size=8127
real debug: new frame size=8665
real debug: last fixing copy=788 offset=7877
real debug: sending size=9677
real debug: new frame size=2193
real debug: last fixing copy=444 offset=1749
real debug: sending size=3205
real debug: new frame size=6043
real debug: last fixing copy=600 offset=5443
real debug: sending size=7055
real debug: new frame size=1093
real debug: last fixing copy=837 offset=256
main warning: computed PTS is out of range (117599), clearing out
main warning: PTS is out of range (117212), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: output PTS is out of range (142709), clearing out
real debug: sending size=2105
real debug: new frame size=6084
real debug: last fixing copy=372 offset=5712
real debug: sending size=7096
real debug: new frame size=1893
real debug: last fixing copy=160 offset=1733
real debug: sending size=2905
real debug: new frame size=6771
real debug: last fixing copy=887 offset=5884
real debug: sending size=7783
main warning: late picture skipped (3650)
real debug: new frame size=2064
real debug: last fixing copy=355 offset=1709
real debug: sending size=3076
real debug: new frame size=5729
real debug: last fixing copy=1244 offset=4485
real debug: sending size=6741
real debug: new frame size=1747
real debug: last fixing copy=67 offset=1680
real debug: sending size=2759
main warning: PTS is out of range (327437), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
real debug: new frame size=5910
real debug: last fixing copy=220 offset=5690
real debug: sending size=6922
real debug: new frame size=1545
real debug: sending size=2557
real debug: new frame size=7846
real debug: last fixing copy=1005 offset=6841
real debug: sending size=8858
real debug: new frame size=1549
real debug: last fixing copy=1205 offset=344
real debug: sending size=2561
real debug: new frame size=6952
real debug: last fixing copy=865 offset=6087
real debug: sending size=7964
real debug: new frame size=1882
real debug: last fixing copy=38 offset=1844
real debug: sending size=2894
main warning: PTS is out of range (540375), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
real debug: new frame size=6642
real debug: last fixing copy=1019 offset=5623
real debug: sending size=7654
real debug: new frame size=1523
real debug: sending size=2535
real debug: new frame size=5934
real debug: last fixing copy=280 offset=5654
real debug: sending size=6946
real debug: new frame size=1267
real debug: last fixing copy=934 offset=333
real debug: sending size=2279
real debug: new frame size=7160
real debug: last fixing copy=1269 offset=5891
real debug: sending size=8172
real debug: new frame size=1791
real debug: last fixing copy=102 offset=1689
real debug: sending size=2803
main warning: PTS is out of range (743717), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
real debug: new frame size=7331
real debug: last fixing copy=474 offset=6857
real debug: sending size=8343
real debug: new frame size=1527
real debug: last fixing copy=1248 offset=279
real debug: sending size=2539
real debug: new frame size=6028
real debug: last fixing copy=76 offset=5952
real debug: sending size=7040
real debug: new frame size=1078
real debug: last fixing copy=755 offset=323
main warning: PTS is out of range (953071), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
real debug: sending size=2090
real debug: new frame size=5892
real debug: last fixing copy=1155 offset=4737
real debug: sending size=6904
real debug: new frame size=1311
real debug: last fixing copy=1043 offset=268
real debug: sending size=2323
real debug: new frame size=5857
real debug: last fixing copy=1252 offset=4605
real debug: sending size=6869
real debug: new frame size=1180
real debug: last fixing copy=949 offset=231
real debug: sending size=2192
real debug: new frame size=4017
real debug: last fixing copy=141 offset=3876
real debug: sending size=5029
real debug: new frame size=680
real debug: last fixing copy=443 offset=237
main warning: PTS is out of range (1161305), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1138539), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1115841), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1093052), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1070269), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1047480), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1024698), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1001910), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
real debug: sending size=1692
real debug: new frame size=4619
real debug: last fixing copy=726 offset=3893
real debug: sending size=5631
real debug: new frame size=1027
real debug: last fixing copy=822 offset=205
real debug: sending size=2039
real debug: new frame size=4943
real debug: last fixing copy=694 offset=4249
real debug: sending size=5955
real debug: new frame size=959
real debug: last fixing copy=719 offset=240
main warning: PTS is out of range (1116625), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1093952), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1071189), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1048407), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1025642), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1002860), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (980068), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (957293), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (934499), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (911823), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (889034), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (866514), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (843728), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (820948), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (798159), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (775387), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (752602), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (729868), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (707085), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (684305), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (661521), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (638734), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (615950), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (593167), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (570388), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (547599), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (524955), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (502176), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (479400), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (456612), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (433957), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (411172), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (388390), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (365597), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (342865), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (320078), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (297286), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (274506), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (251715), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (228937), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (206141), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (183351), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (160557), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (137770), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (115094), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (92308), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (69513), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (46720), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (23931), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (1137), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
main warning: PTS is out of range (-21650), AOUT_MIN_PREPARE_TIME(40000) dropping buffer
real debug: sending size=1971
real debug: new frame size=6412

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: vlc for windows(support RV40), but "Cook Audio" problem....

Postby Jean-Baptiste Kempf » 07 Nov 2007 01:18

I don't know. What if you force cook decoder from ffmpeg ?

Btw, you code still needs fixing.
"I counted 3 times it assigns
p_dec->pf_decode_video. It mallocs p_sys in an unusual place, which
propably makes the handling of p_dec->p_sys far from stable.

Other remarks:
- cleanup of code flow, especially handling of p_sys
- on fail of malloc it should return VLC_ENOMEM iso VLC_EGENEREIC
- removal of dead code"

Moreover, some #ifdef WIN32 && LOADER are present. Are you sure you need the LOADER on windows ?
I tought that the loader was only for linux, to load Windows dlls ones.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

jerry4711
Blank Cone
Blank Cone
Posts: 17
Joined: 16 Nov 2007 02:10
VLC version: 0.8.6c
Operating System: Windows
Location: Fuzhou,Fujian,China

Re: vlc for windows(support RV40), but "Cook Audio" problem....

Postby jerry4711 » 17 Nov 2007 09:49

Is the file realvideo.c add to the path of ..\modules\codec?

Thanks a lot!


Return to “VLC media player for Windows Troubleshooting”

Who is online

Users browsing this forum: No registered users and 67 guests