OSDN Git Service

Use PTS, not DTS, in encx264 output frames so we don't have to special-case its outpu...
[handbrake-jp/handbrake-jp-git.git] / libhb / internal.h
index 8095967..36dca0d 100644 (file)
@@ -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: <http://handbrake.m0k.org/>.
+   Homepage: <http://handbrake.fr/>.
    It may be used under the terms of the GNU General Public License. */
 
 /***********************************************************************
@@ -97,27 +97,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 ** );
-int              hb_libmpeg2_clear_aspect_ratio( 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
@@ -136,12 +129,14 @@ 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, int opentype );
+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_ffmpeg_context( int codec_param );
+void       * hb_ffmpeg_avstream( int codec_param );
 
 /***********************************************************************
  * Work objects
@@ -162,6 +157,7 @@ union hb_esconfig_u
            int       sps_length;
            uint8_t  pps[HB_CONFIG_MAX_SIZE];
            int       pps_length;
+        uint32_t init_delay;
        } h264;
 
     struct
@@ -208,6 +204,9 @@ enum
     WORK_DECA52,
     WORK_DECDCA,
     WORK_DECAVCODEC,
+    WORK_DECAVCODECV,
+    WORK_DECAVCODECVI,
+    WORK_DECAVCODECAI,
     WORK_DECLPCM,
     WORK_ENCFAAC,
     WORK_ENCLAME,
@@ -219,7 +218,8 @@ enum
     FILTER_DEINTERLACE = 1,
     FILTER_DEBLOCK,
     FILTER_DENOISE,
-    FILTER_DETELECINE
+    FILTER_DETELECINE,
+    FILTER_DECOMB
 };
 
 extern hb_work_object_t * hb_objects;