X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=libhb%2Finternal.h;h=5f04e385298ae9e0a633a59bcd58f6e3232d101d;hb=9a61399a4204d03a3011b0ec368c22eb7683ab50;hp=47138f2d2895ea6379484dc007d5103bd42cf40b;hpb=6e499d70fd7147fec222062679e24550a4881892;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/libhb/internal.h b/libhb/internal.h index 47138f2d..5f04e385 100644 --- a/libhb/internal.h +++ b/libhb/internal.h @@ -1,7 +1,7 @@ /* $Id: internal.h,v 1.41 2005/11/25 15:05:25 titer Exp $ This file is part of the HandBrake source code. - Homepage: . + Homepage: . It may be used under the terms of the GNU General Public License. */ /*********************************************************************** @@ -19,6 +19,8 @@ void hb_list_empty( hb_list_t ** ); hb_title_t * hb_title_init( char * dvd, int index ); void hb_title_close( hb_title_t ** ); +void hb_filter_close( hb_filter_object_t ** ); + /*********************************************************************** * hb.c **********************************************************************/ @@ -51,7 +53,7 @@ struct hb_buffer_s #define HB_FRAME_KEY 0x0F #define HB_FRAME_REF 0xF0 uint8_t frametype; - uint8_t flags; + uint16_t flags; /* Holds the output PTS from x264, for use by b-frame offsets in muxmp4.c */ int64_t renderOffset; @@ -72,7 +74,7 @@ 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, +void hb_buffer_copy_settings( hb_buffer_t * dst, const hb_buffer_t * src ); hb_fifo_t * hb_fifo_init(); @@ -83,6 +85,7 @@ hb_buffer_t * hb_fifo_get( hb_fifo_t * ); hb_buffer_t * hb_fifo_see( hb_fifo_t * ); hb_buffer_t * hb_fifo_see2( hb_fifo_t * ); void hb_fifo_push( hb_fifo_t *, hb_buffer_t * ); +void hb_fifo_push_head( hb_fifo_t *, hb_buffer_t * ); void hb_fifo_close( hb_fifo_t ** ); /*********************************************************************** @@ -95,26 +98,20 @@ hb_thread_t * hb_work_init( hb_list_t * jobs, int cpu_count, 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 * ); - -/*********************************************************************** - * libmpeg2 wrapper - *********************************************************************** - * It is exported here because it is used at several places - **********************************************************************/ -typedef struct hb_libmpeg2_s hb_libmpeg2_t; - -hb_libmpeg2_t * hb_libmpeg2_init(); -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 * aspect_ratio ); -void hb_libmpeg2_close( hb_libmpeg2_t ** ); +hb_work_object_t * hb_get_work( int ); +hb_work_object_t * hb_codec_decoder( int ); +hb_work_object_t * hb_codec_encoder( int ); /*********************************************************************** * mpegdemux.c **********************************************************************/ -int hb_demux_ps( hb_buffer_t * ps_buf, hb_list_t * es_list ); +typedef struct { + int64_t last_scr; /* unadjusted SCR from most recent pack */ + int scr_changes; /* number of SCR discontinuities */ +} hb_psdemux_t; + +int hb_demux_ps( hb_buffer_t * ps_buf, hb_list_t * es_list, hb_psdemux_t * ); +int hb_demux_null( hb_buffer_t * ps_buf, hb_list_t * es_list, hb_psdemux_t * ); /*********************************************************************** * dvd.c @@ -133,14 +130,14 @@ int hb_dvd_chapter( hb_dvd_t * ); int hb_dvd_is_break( hb_dvd_t * d ); void hb_dvd_close( hb_dvd_t ** ); -int hb_stream_is_stream_type( char * path); -hb_stream_t * hb_stream_open( char * path ); +hb_stream_t * hb_stream_open( char * path, hb_title_t *title ); 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 *); -void hb_stream_set_selected_audio_pid_index(hb_stream_t *, int); + +void * hb_ffmpeg_context( int codec_param ); +void * hb_ffmpeg_avstream( int codec_param ); /*********************************************************************** * Work objects @@ -161,10 +158,16 @@ union hb_esconfig_u int sps_length; uint8_t pps[HB_CONFIG_MAX_SIZE]; int pps_length; + uint32_t init_delay; } h264; struct { + uint8_t headers[3][HB_CONFIG_MAX_SIZE]; + } theora; + + struct + { uint8_t bytes[HB_CONFIG_MAX_SIZE]; int length; } aac; @@ -174,7 +177,7 @@ union hb_esconfig_u uint8_t headers[3][HB_CONFIG_MAX_SIZE]; char *language; } vorbis; - + struct { /* ac3flags stores the flags from the AC3 source, as found in scan.c */ @@ -198,9 +201,13 @@ enum WORK_ENCAVCODEC, WORK_ENCXVID, WORK_ENCX264, + WORK_ENCTHEORA, WORK_DECA52, WORK_DECDCA, WORK_DECAVCODEC, + WORK_DECAVCODECV, + WORK_DECAVCODECVI, + WORK_DECAVCODECAI, WORK_DECLPCM, WORK_ENCFAAC, WORK_ENCLAME, @@ -212,7 +219,8 @@ enum FILTER_DEINTERLACE = 1, FILTER_DEBLOCK, FILTER_DENOISE, - FILTER_DETELECINE + FILTER_DETELECINE, + FILTER_DECOMB }; extern hb_work_object_t * hb_objects;