OSDN Git Service

x264: bump to r1159-3da3f95
[handbrake-jp/handbrake-jp-git.git] / libhb / common.h
index b7c4686..d7649f4 100644 (file)
@@ -183,9 +183,7 @@ struct hb_job_s
                             except with x264, to use its real QP/RF scale
          vbitrate:          output bitrate (kbps)
          vrate, vrate_base: output framerate is vrate / vrate_base
-         vfr:               boolean for variable frame rate detelecine
-         cfr:               boolean to use constant frame rates instead of
-                            passing through the source's frame durations.
+         cfr:               0 (vfr), 1 (cfr), 2 (pfr) [see render.c]
          pass:              0, 1 or 2 (or -1 for scan)
          h264_level:        vestigial boolean to decide if we're encoding for iPod
          crf:               boolean for whether to use constant rate factor with x264
@@ -215,11 +213,9 @@ struct hb_job_s
     /* List of audio settings. */
     hb_list_t     * list_audio;
 
-    /* Subtitle settings:
-         subtitle: index in hb_title_t's subtitles list, starting
-         from 0. -1 means no subtitle */
-    int             subtitle;
-    int             subtitleSmartAdjust;
+    /* Subtitles
+     */
+    hb_list_t     * list_subtitle;
 
     /* Muxer settings
          mux:  output file format
@@ -242,9 +238,9 @@ struct hb_job_s
 
     int indepth_scan;
     hb_subtitle_t ** select_subtitle;
-    int subtitle_force;
     char * native_language;
 
+    int             angle;              // dvd angle to encode
     int             frame_to_stop;       // declare eof when we hit this frame
     int64_t         pts_to_stop;        // declare eof when we pass this pts in
                                         //  the time-linearized input stream
@@ -290,6 +286,7 @@ struct hb_job_s
 #define HB_ACODEC_LPCM   0x002000
 #define HB_ACODEC_DCA    0x004000
 #define HB_ACODEC_FFMPEG 0x008000
+#define HB_ACODEC_CA_AAC 0x010000
 
 /* Audio Mixdown */
 /* define some masks, used to extract the various information from the HB_AMIXDOWN_XXXX values */
@@ -421,6 +418,8 @@ struct hb_audio_s
 struct hb_chapter_s
 {
     int      index;
+    int      pgcn;
+    int      pgn;
     int      cell_start;
     int      cell_end;
     int      block_start;
@@ -441,7 +440,12 @@ struct hb_chapter_s
 
 struct hb_subtitle_s
 {
+    int track;
     int  id;
+    enum subtype { PICTURESUB, TEXTSUB } format;
+    enum subsource { VOBSUB, SRTSUB, CC608SUB, CC708SUB } source;
+    enum subdest { RENDERSUB, PASSTHRUSUB } dest;
+    int  force;
     char lang[1024];
     char iso639_2[4];
     uint8_t type; /* Closed Caption, Childrens, Directors etc */
@@ -452,7 +456,10 @@ struct hb_subtitle_s
 #ifdef __LIBHB__
     /* Internal data */
     hb_fifo_t * fifo_in;  /* SPU ES */
-    hb_fifo_t * fifo_raw; /* Decodec SPU */
+    hb_fifo_t * fifo_raw; /* Decoded SPU */
+    hb_fifo_t * fifo_sync;/* Synced */
+    hb_fifo_t * fifo_out; /* Correct Timestamps, ready to be muxed */
+    hb_mux_data_t * mux_data;
 #endif
 };
 
@@ -465,7 +472,6 @@ struct hb_metadata_s
     char  comment[1024];
     char  album[255];
     char  genre[255];
-    enum arttype {UNKNOWN, BMP, GIF87A, GIF89A, JPG, PNG, TIFFL, TIFFB} coverart_type;
     uint32_t coverart_size;
     uint8_t *coverart;
 };
@@ -482,6 +488,7 @@ struct hb_title_s
     int         block_start;
     int         block_end;
     int         block_count;
+    int         angle_count;
 
     /* Visual-friendly duration */
     int         hours;
@@ -631,7 +638,10 @@ struct hb_work_object_s
     hb_esconfig_t     * config;
 
     /* Pointer hb_audio_t so we have access to the info in the audio worker threads. */
-    hb_audio_t *audio;
+    hb_audio_t        * audio;
+
+    /* Pointer hb_subtitle_t so we have access to the info in the subtitle worker threads. */
+    hb_subtitle_t     * subtitle;
 
     hb_work_private_t * private_data;
 
@@ -639,15 +649,18 @@ struct hb_work_object_s
     volatile int      * done;
     int                 status;
     int                 codec_param;
+    hb_title_t        * title;
 
     hb_work_object_t  * next;
-       int                               thread_sleep_interval;
+    int                 thread_sleep_interval;
 #endif
 };
 
 extern hb_work_object_t hb_sync;
 extern hb_work_object_t hb_decmpeg2;
-extern hb_work_object_t hb_decsub;
+extern hb_work_object_t hb_decvobsub;
+extern hb_work_object_t hb_encvobsub;
+extern hb_work_object_t hb_deccc608;
 extern hb_work_object_t hb_render;
 extern hb_work_object_t hb_encavcodec;
 extern hb_work_object_t hb_encxvid;
@@ -663,6 +676,7 @@ extern hb_work_object_t hb_declpcm;
 extern hb_work_object_t hb_encfaac;
 extern hb_work_object_t hb_enclame;
 extern hb_work_object_t hb_encvorbis;
+extern hb_work_object_t hb_encca_aac;
 
 #define FILTER_OK      0
 #define FILTER_DELAY   1