aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Input/in_mp4/Main.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Plugins/Input/in_mp4/Main.h')
-rw-r--r--Src/Plugins/Input/in_mp4/Main.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/Src/Plugins/Input/in_mp4/Main.h b/Src/Plugins/Input/in_mp4/Main.h
new file mode 100644
index 00000000..661e182d
--- /dev/null
+++ b/Src/Plugins/Input/in_mp4/Main.h
@@ -0,0 +1,76 @@
+#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 \ No newline at end of file