12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #ifndef NULLSOFT_IN_MP4_MAINH
- #define NULLSOFT_IN_MP4_MAINH
- #include "mp4.h"
- #include "../Winamp/in2.h"
- #include "mpeg4audio.h"
- #include "mpeg4video.h"
- #include "AudioSample.h"
- #include "../nu/AutoLock.h"
- #include "../nu/VideoClock.h"
- extern nu::VideoClock video_clock;
- MP4TrackId GetAudioTrack(MP4FileHandle infile);
- MP4TrackId GetVideoTrack(MP4FileHandle infile);
- int GetAACTrack(MP4FileHandle infile);
- class waServiceFactory;
- bool CreateVideoDecoder(MP4FileHandle file, MP4TrackId track, MP4VideoDecoder *&decoder, waServiceFactory *&serviceFactory);
- class MP4AudioDecoder;
- bool CreateDecoder(MP4FileHandle file, MP4TrackId track, MP4AudioDecoder *&decoder, waServiceFactory *&serviceFactory);
- void ConfigureDecoderASC(MP4FileHandle file, MP4TrackId track, MP4AudioDecoder *decoder);
- bool GetCustomMetadata(MP4FileHandle mp4, char *metadata, wchar_t *dest, int destlen, const char *owner=0);
- float GetGain(MP4FileHandle mp4, bool allowDefault=true);
- void GetGaps(MP4FileHandle mp4, unsigned __int32 &pre, unsigned __int32 &post);
- struct ThreadInfoBox
- {
- HWND hwndDlg;
- HANDLE completionEvent;
- };
- VOID CALLBACK CurrentlyPlayingInfoBox(ULONG_PTR param);
- extern wchar_t lastfn[MAX_PATH*4];
- extern HANDLE killEvent, seekEvent, pauseEvent;
- extern In_Module mod; // the output module
- extern MP4FileHandle MP4hFile;
- extern MP4TrackId audio_track, video_track;
- class AudioSample;
- int TryWriteAudio(AudioSample *sample);
- extern MP4AudioDecoder *audio;
- extern MP4VideoDecoder *video;
- extern unsigned int audio_bitrate, video_bitrate;
- extern MP4SampleId numSamples, numVideoSamples;
- extern DWORD WINAPI PlayProc(LPVOID lpParameter);
- extern bool first;
- extern HANDLE hThread;
- extern Nullsoft::Utility::LockGuard play_mp4_guard;
- extern volatile int m_needseek;
- void CALLBACK Seek(ULONG_PTR data);
- void CALLBACK Pause(ULONG_PTR data);
- extern uint32_t m_video_timescale;
- extern uint32_t m_timescale;
- extern const wchar_t *defaultExtensions;
- extern wchar_t m_ini[MAX_PATH];
- char *BuildExtensions(const char *extensions);
- extern bool config_show_average_bitrate;
- void FlushOutput();
- extern int m_force_seek;
- MP4Duration GetClock();
- MP4Duration GetDecodeClock();
- extern bool audio_chunk;
- // {B6CB4A7C-A8D0-4c55-8E60-9F7A7A23DA0F}
- static const GUID playbackConfigGroupGUID =
- {
- 0xb6cb4a7c, 0xa8d0, 0x4c55, { 0x8e, 0x60, 0x9f, 0x7a, 0x7a, 0x23, 0xda, 0xf }
- };
- #endif
|