X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=libhb%2Fcommon.h;h=b6c5e5714ccb366be63606b64296fdb7c4779263;hb=033e32de9c380f54c7d1362a3979da205ebc3a29;hp=83460653a107b6e7091ef50d24c7a18ef3f46868;hpb=0d4f5926142be762389f82f1c560c67cfd4129b1;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/libhb/common.h b/libhb/common.h index 83460653..b6c5e571 100644 --- a/libhb/common.h +++ b/libhb/common.h @@ -18,6 +18,12 @@ #include #include +#if defined( __GNUC__ ) && !(defined( _WIN32 ) || defined( __MINGW32__ )) +# define HB_WPRINTF(s,v) __attribute__((format(printf,s,v))) +#else +# define HB_WPRINTF(s,v) +#endif + #if defined( SYS_MINGW ) # define fseek fseeko64 # define ftell ftello64 @@ -55,6 +61,7 @@ typedef struct hb_chapter_s hb_chapter_t; typedef struct hb_audio_s hb_audio_t; typedef struct hb_audio_config_s hb_audio_config_t; typedef struct hb_subtitle_s hb_subtitle_t; +typedef struct hb_subtitle_config_s hb_subtitle_config_t; typedef struct hb_metadata_s hb_metadata_t; typedef struct hb_state_s hb_state_t; typedef union hb_esconfig_u hb_esconfig_t; @@ -94,6 +101,11 @@ void hb_audio_config_init(hb_audio_config_t * audiocfg); int hb_audio_add(const hb_job_t * job, const hb_audio_config_t * audiocfg); hb_audio_config_t * hb_list_audio_config_item(hb_list_t * list, int i); +int hb_subtitle_add(const hb_job_t * job, const hb_subtitle_config_t * subtitlecfg, int track); +int hb_srt_add(const hb_job_t * job, const hb_subtitle_config_t * subtitlecfg, + const char *lang); + + struct hb_rate_s { char * string; @@ -108,6 +120,16 @@ struct hb_mixdown_s int amixdown; }; +struct hb_subtitle_config_s +{ + enum subdest { RENDERSUB, PASSTHRUSUB } dest; + int force; + int default_track; + char src_filename[128]; + char src_codeset[40]; + int64_t offset; +}; + #define HB_VIDEO_RATE_BASE 27000000 extern hb_rate_t hb_video_rates[]; @@ -171,6 +193,7 @@ struct hb_job_s int par_height; int dar_width; int dar_height; + int keep_display_aspect; } anamorphic; int maxWidth; @@ -186,7 +209,6 @@ struct hb_job_s 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 x264opts: string of extra x264 options areBframes: boolean to note if b-frames are included in x264opts */ #define HB_VCODEC_MASK 0x0000FF @@ -204,7 +226,6 @@ struct hb_job_s int pass; int h264_13; int h264_level; - int crf; char *x264opts; int areBframes; int color_matrix; @@ -235,9 +256,8 @@ struct hb_job_s int mp4_optimize; int ipod_atom; - int indepth_scan; - hb_subtitle_t ** select_subtitle; - char * native_language; + int indepth_scan; + hb_subtitle_config_t select_subtitle_config; int angle; // dvd angle to encode int frame_to_stop; // declare eof when we hit this frame @@ -257,6 +277,9 @@ struct hb_job_s volatile int * die; volatile int done; + uint64_t st_pause_date; + uint64_t st_paused; + hb_fifo_t * fifo_mpeg2; /* MPEG-2 video ES */ hb_fifo_t * fifo_raw; /* Raw pictures */ hb_fifo_t * fifo_sync; /* Raw pictures, framerate corrected */ @@ -439,12 +462,13 @@ struct hb_chapter_s struct hb_subtitle_s { - int track; int id; + int track; + + hb_subtitle_config_t config; + 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 */ @@ -660,6 +684,7 @@ extern hb_work_object_t hb_decmpeg2; 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_decsrtsub; extern hb_work_object_t hb_render; extern hb_work_object_t hb_encavcodec; extern hb_work_object_t hb_encx264;