view loader/dshow/DS_AudioDecoder.h @ 32434:acb796d7ca50

Make mencoder account for encoder delay when considering the current time position of a muxer stream. To mencoder core, delayed frames should be considered as "dealt with", since they'll get to the muxer eventually. Without this compensation, mencoder will sometimes make different frame skip/duplicate decisions on the first of a two-pass x264 encode (since x264 buffers many more frames on the first pass), leading to a segfault in x264 when it gets fed more frames on the second pass.
author corey
date Thu, 21 Oct 2010 07:05:30 +0000
parents 837cd9762b4e
children
line wrap: on
line source

#ifndef MPLAYER_DS_AUDIODECODER_H
#define MPLAYER_DS_AUDIODECODER_H

#include "loader/com.h"
#include "loader/wine/mmreg.h"

typedef struct DS_AudioDecoder DS_AudioDecoder;

//DS_AudioDecoder * DS_AudioDecoder_Create(const CodecInfo * info, const WAVEFORMATEX* wf);
DS_AudioDecoder * DS_AudioDecoder_Open(char* dllname, GUID* guid, WAVEFORMATEX* wf);

void DS_AudioDecoder_Destroy(DS_AudioDecoder *this);

int DS_AudioDecoder_Convert(DS_AudioDecoder *this, const void* in_data, unsigned int in_size,
			     void* out_data, unsigned int out_size,
			     unsigned int* size_read, unsigned int* size_written);

int DS_AudioDecoder_GetSrcSize(DS_AudioDecoder *this, int dest_size);

#endif /* MPLAYER_DS_AUDIODECODER_H */