OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / libhb / downmix.h
index f971048..5a6ec0b 100644 (file)
@@ -11,22 +11,38 @@ typedef float hb_sample_t;
 
 typedef struct
 {
+    int chan_map[10][2][8];
+    int inv_chan_map[10][2][8];
+} hb_chan_map_t;
+
+typedef struct
+{
     int            mode_in;
     int            mode_out;
     int            nchans_in;
     int            nchans_out;
     hb_sample_t    matrix[8][8];
+    int            matrix_initialized;
     hb_sample_t    clev;
     hb_sample_t    slev;
     hb_sample_t    level;
     hb_sample_t    bias;
+    hb_chan_map_t  map_in;
+    hb_chan_map_t  map_out;
+
+    int center;
+    int left_surround;
+    int right_surround;
+    int rear_left_surround;
+    int rear_right_surround;
 } hb_downmix_t;
 
 // For convenience, a map to convert smpte channel layout
 // to QuickTime channel layout.
 // Map Indicies are mode, lfe, channel respectively
-extern int hb_smpte_chan_map[10][2][8];
-extern int hb_ac3_chan_map[10][2][8];
+extern hb_chan_map_t hb_smpte_chan_map;
+extern hb_chan_map_t hb_ac3_chan_map;
+extern hb_chan_map_t hb_qt_chan_map;
 
 hb_downmix_t * hb_downmix_init(int layout, int mixdown);
 void hb_downmix_close( hb_downmix_t **downmix );
@@ -34,8 +50,17 @@ int hb_downmix_set_mode( hb_downmix_t * downmix, int layout, int mixdown );
 void hb_downmix_set_level( hb_downmix_t * downmix, hb_sample_t clev, hb_sample_t slev, hb_sample_t level );
 void hb_downmix_adjust_level( hb_downmix_t * downmix );
 void hb_downmix_set_bias( hb_downmix_t * downmix, hb_sample_t bias );
+void hb_downmix_set_chan_map( 
+    hb_downmix_t * downmix, 
+    hb_chan_map_t * map_in, 
+    hb_chan_map_t * map_out );
 void hb_downmix( hb_downmix_t * downmix, hb_sample_t * dst, hb_sample_t * src, int nsamples);
-void hb_layout_remap( int (*layouts)[2][8], hb_sample_t * samples, int layout, int nsamples );
+void hb_layout_remap( 
+    hb_chan_map_t * map_in, 
+    hb_chan_map_t * map_out, 
+    int layout, 
+    hb_sample_t * samples, 
+    int nsamples );
 int hb_need_downmix( int layout, int mixdown );
 
 #endif /* DOWNMIX_H */