/* 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];
struct
{
int mode;
- int modulus;
int itu_par;
int par_width;
int par_height;
int dar_height;
int keep_display_aspect;
} anamorphic;
-
+
+ int modulus;
int maxWidth;
int maxHeight;
hb_subtitle_config_t select_subtitle_config;
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
hb_fifo_t * fifo_mpeg4; /* MPEG-4 video ES */
hb_thread_t * reader;
- hb_thread_t * muxer;
hb_list_t * list_work;
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;
#define HB_STATE_PAUSED 16
#define HB_STATE_WORKDONE 32
#define HB_STATE_MUXING 64
+#define HB_STATE_SEARCHING 128
int state;
union
#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_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
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