summaryrefslogtreecommitdiffstats
path: root/libhb/internal.h
diff options
context:
space:
mode:
authorJohn Stebbins <[email protected]>2019-09-11 09:56:06 -0700
committerJohn Stebbins <[email protected]>2019-09-12 10:22:07 -0700
commit1b7948495fcf4d511e62d7f9c3a0c1a3ccb59f80 (patch)
treec87c308f35d862678a4bca37637d24acb8de1c2c /libhb/internal.h
parenta7f548861f9f0be309659e93eaccd1994a3a5cfe (diff)
libhb: resolve header conflicts with pango/harfbuzz
Newest versions appear to have a "common.h" somewhere that is interfering with libhb/common.h. move headers into "handbrake" subdirectory
Diffstat (limited to 'libhb/internal.h')
-rw-r--r--libhb/internal.h541
1 files changed, 0 insertions, 541 deletions
diff --git a/libhb/internal.h b/libhb/internal.h
deleted file mode 100644
index e642c2d2c..000000000
--- a/libhb/internal.h
+++ /dev/null
@@ -1,541 +0,0 @@
-/* internal.h
-
- Copyright (c) 2003-2019 HandBrake Team
- This file is part of the HandBrake source code
- Homepage: <http://handbrake.fr/>.
- It may be used under the terms of the GNU General Public License v2.
- For full terms see the file COPYING file or visit http://www.gnu.org/licenses/gpl-2.0.html
- */
-
-#ifndef HB_INTERNAL_H
-#define HB_INTERNAL_H
-
-#include "project.h"
-#include "hbffmpeg.h"
-#if HB_PROJECT_FEATURE_QSV
-#include "qsv_libav.h"
-#endif
-
-/***********************************************************************
- * common.c
- **********************************************************************/
-void hb_log( char * log, ... ) HB_WPRINTF(1,2);
-extern int global_verbosity_level; // Global variable for hb_deep_log
-typedef enum hb_debug_level_s
-{
- HB_SUPPORT_LOG = 1, // helpful in tech support
- HB_HOUSEKEEPING_LOG = 2, // stuff we hate scrolling through
- HB_GRANULAR_LOG = 3 // sample-by-sample
-} hb_debug_level_t;
-void hb_valog( hb_debug_level_t level, const char * prefix, const char * log, va_list args) HB_WPRINTF(3,0);
-void hb_deep_log( hb_debug_level_t level, char * log, ... ) HB_WPRINTF(2,3);
-void hb_error( char * fmt, ...) HB_WPRINTF(1,2);
-void hb_hexdump( hb_debug_level_t level, const char * label, const uint8_t * data, int len );
-
-int hb_list_bytes( hb_list_t * );
-void hb_list_seebytes( hb_list_t * l, uint8_t * dst, int size );
-void hb_list_getbytes( hb_list_t * l, uint8_t * dst, int size,
- uint64_t * pts, uint64_t * pos );
-void hb_list_empty( hb_list_t ** );
-
-hb_title_t * hb_title_init( char * dvd, int index );
-void hb_title_close( hb_title_t ** );
-
-/***********************************************************************
- * hb.c
- **********************************************************************/
-int hb_get_pid( hb_handle_t * );
-void hb_set_state( hb_handle_t *, hb_state_t * );
-void hb_set_work_error( hb_handle_t * h, hb_error_code err );
-void hb_job_setup_passes(hb_handle_t *h, hb_job_t *job, hb_list_t *list_pass);
-
-/***********************************************************************
- * fifo.c
- **********************************************************************/
-
-/*
- * Holds a packet of data that is moving through the transcoding process.
- *
- * May have metadata associated with it via extra fields
- * that are conditionally used depending on the type of packet.
- */
-struct hb_buffer_settings_s
-{
- enum { OTHER_BUF, AUDIO_BUF, VIDEO_BUF, SUBTITLE_BUF, FRAME_BUF } type;
-
- int id; // ID of the track that the packet comes from
- int64_t start; // start time of frame
- double duration; // Actual duration, may be fractional ticks
- int64_t stop; // stop time of frame
- int64_t renderOffset; // DTS used by b-frame offsets in muxmp4
- int64_t pcr;
- int scr_sequence; // The SCR sequence that this buffer's
- // timestamps are referenced to
- int split;
- uint8_t discontinuity;
- int new_chap; // Video packets: if non-zero, is the index of the chapter whose boundary was crossed
-
-#define HB_FRAME_IDR 0x01
-#define HB_FRAME_I 0x02
-#define HB_FRAME_AUDIO 0x04
-#define HB_FRAME_SUBTITLE 0x08
-#define HB_FRAME_P 0x10
-#define HB_FRAME_B 0x20
-#define HB_FRAME_BREF 0x40
-#define HB_FRAME_MASK_KEY 0x0F
-#define HB_FRAME_MASK_REF 0xF0
- uint8_t frametype;
-
-// Picture flags used by filters
-#ifndef PIC_FLAG_TOP_FIELD_FIRST
-#define PIC_FLAG_TOP_FIELD_FIRST 0x0008
-#endif
-#ifndef PIC_FLAG_PROGRESSIVE_FRAME
-#define PIC_FLAG_PROGRESSIVE_FRAME 0x0010
-#endif
-#ifndef PIC_FLAG_REPEAT_FIRST_FIELD
-#define PIC_FLAG_REPEAT_FIRST_FIELD 0x0100
-#endif
-#define PIC_FLAG_REPEAT_FRAME 0x0200
-#define HB_BUF_FLAG_EOF 0x0400
-#define HB_BUF_FLAG_EOS 0x0800
-#define HB_FLAG_FRAMETYPE_KEY 0x1000
-#define HB_FLAG_FRAMETYPE_REF 0x2000
-#define HB_FLAG_DISCARD 0x4000
- uint16_t flags;
-
-#define HB_COMB_NONE 0
-#define HB_COMB_LIGHT 1
-#define HB_COMB_HEAVY 2
- uint8_t combed;
-};
-
-struct hb_image_format_s
-{
- int x;
- int y;
- int width;
- int height;
- int fmt;
- int color_prim;
- int color_transfer;
- int color_matrix;
- int color_range;
- int max_plane;
- int window_width;
- int window_height;
-};
-
-struct hb_buffer_s
-{
- int size; // size of this packet
- int alloc; // used internally by the packet allocator (hb_buffer_init)
- uint8_t * data; // packet data
- int offset; // used internally by packet lists (hb_list_t)
-
- hb_buffer_settings_t s;
- hb_image_format_t f;
-
- struct buffer_plane
- {
- uint8_t * data;
- int stride;
- int width;
- int height;
- int height_stride;
- int size;
- } plane[4]; // 3 Color components + alpha
-
-#if HB_PROJECT_FEATURE_QSV
- struct qsv
- {
- void * qsv_atom;
- AVFrame * frame;
- void * filter_details;
- hb_qsv_context * ctx;
- } qsv_details;
-#endif
-
- // libav may attach AV_PKT_DATA_PALETTE side data to some AVPackets
- // Store this data here when read and pass to decoder.
- hb_buffer_t * palette;
-
- // Packets in a list:
- // the next packet in the list
- hb_buffer_t * next;
-};
-
-void hb_buffer_pool_init( void );
-void hb_buffer_pool_free( void );
-
-hb_buffer_t * hb_buffer_init( int size );
-hb_buffer_t * hb_buffer_eof_init( void );
-hb_buffer_t * hb_frame_buffer_init( int pix_fmt, int w, int h);
-void hb_frame_buffer_blank_stride(hb_buffer_t * buf);
-void hb_frame_buffer_mirror_stride(hb_buffer_t * buf);
-void hb_buffer_init_planes( hb_buffer_t * b );
-void hb_buffer_realloc( hb_buffer_t *, int size );
-void hb_video_buffer_realloc( hb_buffer_t * b, int w, int h );
-void hb_buffer_reduce( hb_buffer_t * b, int size );
-void hb_buffer_close( hb_buffer_t ** );
-hb_buffer_t * hb_buffer_dup( const hb_buffer_t * src );
-int hb_buffer_copy( hb_buffer_t * dst, const hb_buffer_t * src );
-void hb_buffer_swap_copy( hb_buffer_t *src, hb_buffer_t *dst );
-hb_image_t * hb_image_init(int pix_fmt, int width, int height);
-hb_image_t * hb_buffer_to_image(hb_buffer_t *buf);
-int hb_picture_fill(uint8_t *data[], int stride[], hb_buffer_t *b);
-int hb_picture_crop(uint8_t *data[], int stride[], hb_buffer_t *b,
- int top, int left);
-
-hb_fifo_t * hb_fifo_init( int capacity, int thresh );
-void hb_fifo_register_full_cond( hb_fifo_t * f, hb_cond_t * c );
-int hb_fifo_size( hb_fifo_t * );
-int hb_fifo_size_bytes( hb_fifo_t * );
-int hb_fifo_is_full( hb_fifo_t * );
-float hb_fifo_percent_full( hb_fifo_t * f );
-hb_buffer_t * hb_fifo_get( hb_fifo_t * );
-hb_buffer_t * hb_fifo_get_wait( hb_fifo_t * );
-hb_buffer_t * hb_fifo_see( hb_fifo_t * );
-hb_buffer_t * hb_fifo_see_wait( 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_wait( hb_fifo_t *, hb_buffer_t * );
-int hb_fifo_full_wait( hb_fifo_t * f );
-void hb_fifo_push_head( hb_fifo_t *, hb_buffer_t * );
-void hb_fifo_close( hb_fifo_t ** );
-void hb_fifo_flush( hb_fifo_t * f );
-
-static inline int hb_image_stride( int pix_fmt, int width, int plane )
-{
- int linesize = av_image_get_linesize( pix_fmt, width, plane );
-
- // Make buffer SIMD friendly.
- // Decomb requires stride aligned to 32 bytes
- // TODO: eliminate extra buffer copies in decomb
- linesize = MULTIPLE_MOD_UP( linesize, 32 );
- return linesize;
-}
-
-static inline int hb_image_width(int pix_fmt, int width, int plane)
-{
- const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
-
- if (desc != NULL && (plane == 1 || plane == 2))
- {
- // The wacky arithmetic assures rounding up.
- width = -((-width) >> desc->log2_chroma_w);
- }
-
- return width;
-}
-
-static inline int hb_image_height_stride(int pix_fmt, int height, int plane)
-{
- const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
-
- // Decomb requires 6 extra lines and stride aligned to 32 bytes
- height = MULTIPLE_MOD_UP(height + 6, 32);
- if (desc != NULL && (plane == 1 || plane == 2))
- {
- height = height >> desc->log2_chroma_h;
- }
-
- return height;
-}
-
-static inline int hb_image_height(int pix_fmt, int height, int plane)
-{
- const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
-
- if (desc != NULL && (plane == 1 || plane == 2))
- {
- // The wacky arithmetic assures rounding up.
- height = -((-height) >> desc->log2_chroma_h);
- }
-
- return height;
-}
-
-// this routine gets a buffer for an uncompressed YUV420 video frame
-// with dimensions width x height.
-static inline hb_buffer_t * hb_video_buffer_init( int width, int height )
-{
- return hb_frame_buffer_init( AV_PIX_FMT_YUV420P, width, height );
-}
-
-/***********************************************************************
- * Threads: scan.c, work.c, reader.c, muxcommon.c
- **********************************************************************/
-hb_thread_t * hb_scan_init( hb_handle_t *, volatile int * die,
- const char * path, int title_index,
- hb_title_set_t * title_set, int preview_count,
- int store_previews, uint64_t min_duration );
-hb_thread_t * hb_work_init( hb_list_t * jobs,
- volatile int * die, hb_error_code * error, hb_job_t ** job );
-void ReadLoop( void * _w );
-void hb_work_loop( void * );
-hb_work_object_t * hb_muxer_init( hb_job_t * );
-hb_work_object_t * hb_get_work( hb_handle_t *, int );
-hb_work_object_t * hb_audio_decoder( hb_handle_t *, int );
-hb_work_object_t * hb_audio_encoder( hb_handle_t *, int );
-hb_work_object_t * hb_video_decoder( hb_handle_t *, int, int );
-hb_work_object_t * hb_video_encoder( hb_handle_t *, int );
-
-/***********************************************************************
- * sync.c
- **********************************************************************/
-hb_work_object_t * hb_sync_init( hb_job_t * job );
-
-/***********************************************************************
- * mpegdemux.c
- **********************************************************************/
-typedef struct {
- int64_t last_scr; /* unadjusted SCR from most recent pack */
- int64_t scr_delta;
- int64_t last_pts; /* last pts we saw */
- int scr_changes; /* number of SCR discontinuities */
- int new_chap;
-} hb_psdemux_t;
-
-typedef void (*hb_muxer_t)(hb_buffer_t *, hb_buffer_list_t *, hb_psdemux_t*);
-
-void hb_demux_ps(hb_buffer_t * ps_buf, hb_buffer_list_t * es_list, hb_psdemux_t *);
-void hb_demux_ts(hb_buffer_t * ps_buf, hb_buffer_list_t * es_list, hb_psdemux_t *);
-void hb_demux_null(hb_buffer_t * ps_buf, hb_buffer_list_t * es_list, hb_psdemux_t *);
-
-extern const hb_muxer_t hb_demux[];
-
-/***********************************************************************
- * batch.c
- **********************************************************************/
-typedef struct hb_batch_s hb_batch_t;
-
-hb_batch_t * hb_batch_init( hb_handle_t *h, char * path );
-void hb_batch_close( hb_batch_t ** _d );
-int hb_batch_title_count( hb_batch_t * d );
-hb_title_t * hb_batch_title_scan( hb_batch_t * d, int t );
-
-/***********************************************************************
- * dvd.c
- **********************************************************************/
-typedef struct hb_bd_s hb_bd_t;
-typedef union hb_dvd_s hb_dvd_t;
-typedef struct hb_stream_s hb_stream_t;
-
-hb_dvd_t * hb_dvd_init( hb_handle_t * h, const char * path );
-int hb_dvd_title_count( hb_dvd_t * );
-hb_title_t * hb_dvd_title_scan( hb_dvd_t *, int title, uint64_t min_duration );
-int hb_dvd_start( hb_dvd_t *, hb_title_t *title, int chapter );
-void hb_dvd_stop( hb_dvd_t * );
-int hb_dvd_seek( hb_dvd_t *, float );
-hb_buffer_t * hb_dvd_read( hb_dvd_t * );
-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_dvd_angle_count( hb_dvd_t * d );
-void hb_dvd_set_angle( hb_dvd_t * d, int angle );
-int hb_dvd_main_feature( hb_dvd_t * d, hb_list_t * list_title );
-
-hb_bd_t * hb_bd_init( hb_handle_t *h, const char * path );
-int hb_bd_title_count( hb_bd_t * d );
-hb_title_t * hb_bd_title_scan( hb_bd_t * d, int t, uint64_t min_duration );
-int hb_bd_start( hb_bd_t * d, hb_title_t *title );
-void hb_bd_stop( hb_bd_t * d );
-int hb_bd_seek( hb_bd_t * d, float f );
-int hb_bd_seek_pts( hb_bd_t * d, uint64_t pts );
-int hb_bd_seek_chapter( hb_bd_t * d, int chapter );
-hb_buffer_t * hb_bd_read( hb_bd_t * d );
-int hb_bd_chapter( hb_bd_t * d );
-void hb_bd_close( hb_bd_t ** _d );
-void hb_bd_set_angle( hb_bd_t * d, int angle );
-int hb_bd_main_feature( hb_bd_t * d, hb_list_t * list_title );
-
-hb_stream_t * hb_bd_stream_open( hb_handle_t *h, hb_title_t *title );
-void hb_ts_stream_reset(hb_stream_t *stream);
-hb_stream_t * hb_stream_open(hb_handle_t *h, const char * path,
- hb_title_t *title, int scan);
-void hb_stream_close( hb_stream_t ** );
-hb_title_t * hb_stream_title_scan( hb_stream_t *, hb_title_t *);
-hb_buffer_t * hb_stream_read( hb_stream_t * );
-int hb_stream_seek( hb_stream_t *, float );
-int hb_stream_seek_ts( hb_stream_t * stream, int64_t ts );
-int hb_stream_seek_chapter( hb_stream_t *, int );
-int hb_stream_chapter( hb_stream_t * );
-
-hb_buffer_t * hb_ts_decode_pkt( hb_stream_t *stream, const uint8_t * pkt,
- int chapter, int discontinuity );
-void hb_stream_set_need_keyframe( hb_stream_t *stream, int need_keyframe );
-
-
-#define STR4_TO_UINT32(p) \
- ((((const uint8_t*)(p))[0] << 24) | \
- (((const uint8_t*)(p))[1] << 16) | \
- (((const uint8_t*)(p))[2] << 8) | \
- ((const uint8_t*)(p))[3])
-
-/***********************************************************************
- * Work objects
- **********************************************************************/
-#define HB_CONFIG_MAX_SIZE (2*8192)
-struct hb_esconfig_s
-{
- int init_delay;
-
- union
- {
-
- struct
- {
- uint8_t bytes[HB_CONFIG_MAX_SIZE];
- int length;
- } mpeg4;
-
- struct
- {
- uint8_t sps[HB_CONFIG_MAX_SIZE];
- int sps_length;
- uint8_t pps[HB_CONFIG_MAX_SIZE];
- int pps_length;
- } h264;
-
- struct
- {
- uint8_t headers[HB_CONFIG_MAX_SIZE];
- int headers_length;
- } h265;
-
- struct
- {
- uint8_t headers[3][HB_CONFIG_MAX_SIZE];
- } theora;
-
- struct
- {
- uint8_t bytes[HB_CONFIG_MAX_SIZE];
- int length;
- } extradata;
-
- struct
- {
- uint8_t headers[3][HB_CONFIG_MAX_SIZE];
- char *language;
- } vorbis;
- };
-};
-
-enum
-{
- WORK_NONE = 0,
- WORK_SYNC_VIDEO,
- WORK_SYNC_AUDIO,
- WORK_SYNC_SUBTITLE,
- WORK_DECCC608,
- WORK_DECVOBSUB,
- WORK_DECSRTSUB,
- WORK_DECUTF8SUB,
- WORK_DECTX3GSUB,
- WORK_DECSSASUB,
- WORK_ENCVOBSUB,
- WORK_RENDER,
- WORK_ENCAVCODEC,
- WORK_ENCQSV,
- WORK_ENCX264,
- WORK_ENCX265,
- WORK_ENCTHEORA,
- WORK_DECAVCODEC,
- WORK_DECAVCODECV,
- WORK_DECLPCM,
- WORK_ENCLAME,
- WORK_ENCVORBIS,
- WORK_ENC_CA_AAC,
- WORK_ENC_CA_HAAC,
- WORK_ENCAVCODEC_AUDIO,
- WORK_MUX,
- WORK_READER,
- WORK_DECPGSSUB
-};
-
-extern hb_filter_object_t hb_filter_detelecine;
-extern hb_filter_object_t hb_filter_comb_detect;
-extern hb_filter_object_t hb_filter_decomb;
-extern hb_filter_object_t hb_filter_deinterlace;
-extern hb_filter_object_t hb_filter_vfr;
-extern hb_filter_object_t hb_filter_deblock;
-extern hb_filter_object_t hb_filter_denoise;
-extern hb_filter_object_t hb_filter_nlmeans;
-extern hb_filter_object_t hb_filter_chroma_smooth;
-extern hb_filter_object_t hb_filter_render_sub;
-extern hb_filter_object_t hb_filter_crop_scale;
-extern hb_filter_object_t hb_filter_rotate;
-extern hb_filter_object_t hb_filter_grayscale;
-extern hb_filter_object_t hb_filter_pad;
-extern hb_filter_object_t hb_filter_lapsharp;
-extern hb_filter_object_t hb_filter_unsharp;
-extern hb_filter_object_t hb_filter_avfilter;
-extern hb_filter_object_t hb_filter_mt_frame;
-extern hb_filter_object_t hb_filter_colorspace;
-
-#if HB_PROJECT_FEATURE_QSV
-extern hb_filter_object_t hb_filter_qsv;
-extern hb_filter_object_t hb_filter_qsv_pre;
-extern hb_filter_object_t hb_filter_qsv_post;
-#endif
-
-extern hb_work_object_t * hb_objects;
-
-#define HB_WORK_IDLE 0
-#define HB_WORK_OK 1
-#define HB_WORK_ERROR 2
-#define HB_WORK_DONE 3
-
-/***********************************************************************
- * Muxers
- **********************************************************************/
-typedef struct hb_mux_object_s hb_mux_object_t;
-typedef struct hb_mux_data_s hb_mux_data_t;
-
-#define HB_MUX_COMMON \
- int (*init) ( hb_mux_object_t * ); \
- int (*mux) ( hb_mux_object_t *, hb_mux_data_t *, \
- hb_buffer_t * ); \
- int (*end) ( hb_mux_object_t * );
-
-#define DECLARE_MUX( a ) \
- hb_mux_object_t * hb_mux_##a##_init( hb_job_t * );
-
-DECLARE_MUX( mp4 );
-DECLARE_MUX( mkv );
-DECLARE_MUX( webm );
-DECLARE_MUX( avformat );
-
-void hb_deinterlace(hb_buffer_t *dst, hb_buffer_t *src);
-
-struct hb_chapter_queue_item_s
-{
- int64_t start;
- int new_chap;
-};
-
-struct hb_chapter_queue_s
-{
- hb_list_t * list_chapter;
-};
-
-typedef struct hb_chapter_queue_item_s hb_chapter_queue_item_t;
-typedef struct hb_chapter_queue_s hb_chapter_queue_t;
-
-hb_chapter_queue_t * hb_chapter_queue_init(void);
-void hb_chapter_queue_close(hb_chapter_queue_t **_q);
-void hb_chapter_enqueue(hb_chapter_queue_t *q, hb_buffer_t *b);
-void hb_chapter_dequeue(hb_chapter_queue_t *q, hb_buffer_t *b);
-
-/* Font names used for rendering subtitles */
-#if defined(SYS_MINGW)
-#define HB_FONT_MONO "Lucida Console"
-#define HB_FONT_SANS "sans-serif"
-#else
-#define HB_FONT_MONO "monospace"
-#define HB_FONT_SANS "sans-serif"
-#endif
-
-#endif // HB_INTERNAL_H