00001 #ifndef FILEAC3_H
00002 #define FILEAC3_H
00003
00004 extern "C" {
00005 #include <avcodec.h>
00006 };
00007
00008 #include "filebase.h"
00009 #include <stdio.h>
00010
00011
00012 class FileAC3 : public FileBase
00013 {
00014 public:
00015 FileAC3(Asset *asset, File *file);
00016 ~FileAC3();
00017
00018 int reset_parameters_derived();
00019 static void get_parameters(BC_WindowBase *parent_window,
00020 Asset *asset,
00021 BC_WindowBase* &format_window,
00022 int audio_options,
00023 int video_options);
00024 static int check_sig();
00025 int open_file(int rd, int wr);
00026 int close_file();
00027 int write_samples(double **buffer, int64_t len);
00028
00029 private:
00030 AVCodec *codec;
00031 AVCodecContext *codec_context;
00032 FILE *fd;
00033 int16_t *temp_raw;
00034 int temp_raw_allocated;
00035 int temp_raw_size;
00036 unsigned char *temp_compressed;
00037 int compressed_allocated;
00038 };
00039
00040
00041
00042 class AC3ConfigAudio : public BC_Window
00043 {
00044 public:
00045 AC3ConfigAudio(BC_WindowBase *parent_window,
00046 Asset *asset);
00047
00048 void create_objects();
00049 int close_event();
00050
00051 Asset *asset;
00052 BC_WindowBase *parent_window;
00053 char string[BCTEXTLEN];
00054 };
00055
00056
00057 class AC3ConfigAudioBitrate : public BC_PopupMenu
00058 {
00059 public:
00060 AC3ConfigAudioBitrate(AC3ConfigAudio *gui, int x, int y);
00061
00062 void create_objects();
00063 int handle_event();
00064 static char* bitrate_to_string(char *string, int bitrate);
00065
00066 AC3ConfigAudio *gui;
00067 };
00068
00069
00070
00071
00072
00073 #endif