X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=libhb%2Finternal.h;h=e4d5bee49c403bd036392217ffc4b2728f4be684;hb=fb1dc0ae9ad31243ec0d009ffe02eafae7f315df;hp=bc6f5063c12797d8592a33025b1efb3c56522e12;hpb=16c10de38715fc25cfc2e149dd13e97504a1cf20;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/libhb/internal.h b/libhb/internal.h index bc6f5063..e4d5bee4 100644 --- a/libhb/internal.h +++ b/libhb/internal.h @@ -8,6 +8,7 @@ * common.c **********************************************************************/ void hb_log( char * log, ... ); +void hb_error( char * fmt, ...); int hb_list_bytes( hb_list_t * ); void hb_list_seebytes( hb_list_t * l, uint8_t * dst, int size ); @@ -34,13 +35,26 @@ struct hb_buffer_s uint8_t * data; int cur; + int64_t sequence; + int id; int64_t start; int64_t stop; - int key; + int new_chap; + +#define HB_FRAME_IDR 0x01 +#define HB_FRAME_I 0x02 +#define HB_FRAME_AUDIO 0x04 +#define HB_FRAME_P 0x10 +#define HB_FRAME_B 0x20 +#define HB_FRAME_BREF 0x40 +#define HB_FRAME_KEY 0x0F +#define HB_FRAME_REF 0xF0 + uint8_t frametype; + uint16_t flags; /* Holds the output PTS from x264, for use by b-frame offsets in muxmp4.c */ - int64_t encodedPTS; + int64_t renderOffset; int x; int y; @@ -52,10 +66,14 @@ struct hb_buffer_s hb_buffer_t * next; }; +void hb_buffer_pool_init( void ); +void hb_buffer_pool_free( void ); + hb_buffer_t * hb_buffer_init( int size ); void hb_buffer_realloc( hb_buffer_t *, int size ); void hb_buffer_close( hb_buffer_t ** ); - +void hb_buffer_copy_settings( hb_buffer_t * dst, + const hb_buffer_t * src ); hb_fifo_t * hb_fifo_init(); int hb_fifo_size( hb_fifo_t * ); @@ -74,7 +92,7 @@ hb_thread_t * hb_update_init( int * build, char * version ); hb_thread_t * hb_scan_init( hb_handle_t *, const char * path, int title_index, hb_list_t * list_title ); hb_thread_t * hb_work_init( hb_list_t * jobs, int cpu_count, - volatile int * die, int * error ); + volatile int * die, int * error, hb_job_t ** job ); hb_thread_t * hb_reader_init( hb_job_t * ); hb_thread_t * hb_muxer_init( hb_job_t * ); @@ -90,7 +108,7 @@ int hb_libmpeg2_decode( hb_libmpeg2_t *, hb_buffer_t * es_buf, hb_list_t * raw_list ); void hb_libmpeg2_info( hb_libmpeg2_t * m, int * width, - int * height, int * rate ); + int * height, int * rate, int * aspect_ratio ); void hb_libmpeg2_close( hb_libmpeg2_t ** ); /*********************************************************************** @@ -102,6 +120,7 @@ int hb_demux_ps( hb_buffer_t * ps_buf, hb_list_t * es_list ); * dvd.c **********************************************************************/ typedef struct hb_dvd_s hb_dvd_t; +typedef struct hb_stream_s hb_stream_t; hb_dvd_t * hb_dvd_init( char * path ); int hb_dvd_title_count( hb_dvd_t * ); @@ -111,8 +130,16 @@ void hb_dvd_stop( hb_dvd_t * ); int hb_dvd_seek( hb_dvd_t *, float ); int hb_dvd_read( hb_dvd_t *, hb_buffer_t * ); int hb_dvd_chapter( hb_dvd_t * ); +int hb_dvd_is_break( hb_dvd_t * d ); void hb_dvd_close( hb_dvd_t ** ); +hb_stream_t * hb_stream_open( char * path ); +void hb_stream_close( hb_stream_t ** ); +hb_title_t * hb_stream_title_scan( hb_stream_t *); +int hb_stream_read( hb_stream_t *, hb_buffer_t *); +int hb_stream_seek( hb_stream_t *, float ); +void hb_stream_update_audio( hb_stream_t *, hb_audio_t *); + /*********************************************************************** * Work objects **********************************************************************/ @@ -152,6 +179,12 @@ union hb_esconfig_u int ac3flags; } a52; + struct + { + /* dcaflags stores the flags from the DCA source, as found in scan.c */ + int dcaflags; + } dca; + }; enum @@ -164,6 +197,7 @@ enum WORK_ENCXVID, WORK_ENCX264, WORK_DECA52, + WORK_DECDCA, WORK_DECAVCODEC, WORK_DECLPCM, WORK_ENCFAAC, @@ -171,6 +205,14 @@ enum WORK_ENCVORBIS }; +enum +{ + FILTER_DEINTERLACE = 1, + FILTER_DEBLOCK, + FILTER_DENOISE, + FILTER_DETELECINE +}; + extern hb_work_object_t * hb_objects; #define HB_WORK_IDLE 0 @@ -196,4 +238,5 @@ typedef struct hb_mux_data_s hb_mux_data_t; DECLARE_MUX( mp4 ); DECLARE_MUX( avi ); DECLARE_MUX( ogm ); +DECLARE_MUX( mkv );