X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=libhb%2Fcommon.h;h=0c06ba967faaf1c3a2869b0aed729d15e417a97a;hb=f93c2a10768843b2f8900695bb1ab276ffc168ab;hp=ccd065c15f83321500e5a06afeeb40cbd00b4f11;hpb=48ee66c1ec7c52ce345b7e4c678c3c8461e8e654;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/libhb/common.h b/libhb/common.h index ccd065c1..0c06ba96 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 @@ -96,6 +102,9 @@ 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 { @@ -115,7 +124,10 @@ struct hb_subtitle_config_s { enum subdest { RENDERSUB, PASSTHRUSUB } dest; int force; - int default_track; + int default_track; + char src_filename[128]; + char src_codeset[40]; + int64_t offset; }; #define HB_VIDEO_RATE_BASE 27000000 @@ -154,14 +166,14 @@ struct hb_job_s /* Picture settings: crop: must be multiples of 2 (top/bottom/left/right) deinterlace: 0 or 1 - width: must be a multiple of 16 - height: must be a multiple of 16 + width: must be a multiple of 2 + height: must be a multiple of 2 keep_ratio: used by UIs grayscale: black and white encoding pixel_ratio: store pixel aspect ratio in the video pixel_aspect_width: numerator for pixel aspect ratio pixel_aspect_height: denominator for pixel aspect ratio - modulus: set a number besides 16 for dimensions to be multiples of + modulus: set a number for dimensions to be multiples of maxWidth: keep width below this maxHeight: keep height below this */ int crop[4]; @@ -175,7 +187,6 @@ struct hb_job_s struct { int mode; - int modulus; int itu_par; int par_width; int par_height; @@ -183,7 +194,8 @@ struct hb_job_s int dar_height; int keep_display_aspect; } anamorphic; - + + int modulus; int maxWidth; int maxHeight; @@ -197,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 @@ -215,7 +226,6 @@ struct hb_job_s int pass; int h264_13; int h264_level; - int crf; char *x264opts; int areBframes; int color_matrix; @@ -248,10 +258,12 @@ struct hb_job_s int indepth_scan; hb_subtitle_config_t select_subtitle_config; - char * native_language; int angle; // dvd angle to encode - int frame_to_stop; // declare eof when we hit this frame + int frame_to_start; // declare eof when we hit this frame + int64_t pts_to_start; // drop frames until we pass this pts + // in the time-linearized input stream + 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 int start_at_preview; // if non-zero, encoding will start @@ -268,6 +280,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 */ @@ -275,7 +290,6 @@ struct hb_job_s hb_fifo_t * fifo_mpeg4; /* MPEG-4 video ES */ hb_thread_t * reader; - hb_thread_t * muxer; hb_list_t * list_work; @@ -489,7 +503,8 @@ struct hb_metadata_s struct hb_title_s { - char dvd[1024]; + enum { HB_DVD_TYPE, HB_STREAM_TYPE } type; + char path[1024]; char name[1024]; int index; int vts; @@ -554,6 +569,7 @@ struct hb_state_s #define HB_STATE_PAUSED 16 #define HB_STATE_WORKDONE 32 #define HB_STATE_MUXING 64 +#define HB_STATE_SEARCHING 128 int state; union @@ -667,11 +683,13 @@ struct hb_work_object_s #endif }; -extern hb_work_object_t hb_sync; +extern hb_work_object_t hb_sync_video; +extern hb_work_object_t hb_sync_audio; 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; @@ -686,6 +704,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_muxer; extern hb_work_object_t hb_encca_aac; #define FILTER_OK 0 @@ -717,9 +736,12 @@ extern hb_filter_object_t hb_filter_deinterlace; extern hb_filter_object_t hb_filter_deblock; extern hb_filter_object_t hb_filter_denoise; extern hb_filter_object_t hb_filter_decomb; +extern hb_filter_object_t hb_filter_rotate; typedef void hb_error_handler_t( const char *errmsg ); extern void hb_register_error_handler( hb_error_handler_t * handler ); +char * hb_strdup_printf( char * fmt, ... ); + #endif