{
/* ID assigned by UI so it can groups job passes together */
int sequence_id;
-
+
/* Pointer to the title to be ripped */
hb_title_t * title;
-
+
/* Chapter selection */
int chapter_start;
int chapter_end;
deinterlace: 0 or 1
width: must be a multiple of 16
height: must be a multiple of 16
- keep_ratio: used by UIs
+ keep_ratio: used by UIs
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
vrate, vrate_base: output framerate is vrate / vrate_base
h264_level: boolean for whether or not we're encoding for iPod
crf: boolean for whether to use constant rate factor with x264
- x264opts: string of extra x264 options
+ x264opts: string of extra x264 options
areBframes: boolean to note if b-frames are included in x264opts */
#define HB_VCODEC_MASK 0x0000FF
#define HB_VCODEC_FFMPEG 0x000001
#define HB_VCODEC_XVID 0x000002
#define HB_VCODEC_X264 0x000004
+#define HB_VCODEC_THEORA 0x000008
int vcodec;
float vquality;
// A52_FORMAT of A52_3F2R | A52_LFE = 23 = 0x17
// discrete channel count of 6
+#define HB_AMIXDOWN_AC3 0x20000000
+
+#define HB_AMIXDOWN_DOLBYPLII_AC3 0x404094A2
+// DCA_FORMAT of DCA_3F2R | DCA_OUT_DPLII = 1033 = 0x409
+// A52_FORMAT of A52_DOLBY | A52_USE_DPLII = 74 = 0x4A
+// discrete channel count of 2
+
/* define some macros to extract the various information from the HB_AMIXDOWN_XXXX values */
#define HB_AMIXDOWN_GET_DCA_FORMAT( a ) ( ( a & HB_AMIXDOWN_DCA_FORMAT_MASK ) >> 12 )
#define HB_AMIXDOWN_GET_A52_FORMAT( a ) ( ( a & HB_AMIXDOWN_A52_FORMAT_MASK ) >> 4 )
#define HB_MUX_OGM 0x080000
#define HB_MUX_IPOD 0x100000
#define HB_MUX_MKV 0x200000
-
+
int mux;
const char * file;
int codec;
int rate;
int bitrate;
-
+
/* ac3flags is only set when the source audio format is HB_ACODEC_AC3 */
int ac3flags;
/* amixdown is the mixdown format to be used for this audio track */
int amixdown;
-
- /* Source PID is only valid for MPEG Transport Streams */
- int source_pid;
#endif
};
/* Exact duration (in 1/90000s) */
uint64_t duration;
-
+
/* Optional chapter title */
char title[1024];
};
int rate;
int rate_base;
int crop[4];
+ int detected_interlacing;
uint32_t palette[16];
int hours;
int minutes;
int seconds;
+ int sequence_id;
} working;
struct
extern hb_work_object_t hb_encavcodec;
extern hb_work_object_t hb_encxvid;
extern hb_work_object_t hb_encx264;
+extern hb_work_object_t hb_enctheora;
extern hb_work_object_t hb_deca52;
extern hb_work_object_t hb_decdca;
extern hb_work_object_t hb_decavcodec;
#ifdef __LIBHB__
hb_filter_private_t* (* init) ( int, int, int, char * );
-
+
int (* work) ( const hb_buffer_t *, hb_buffer_t **,
int, int, int, hb_filter_private_t * );
-
+
void (* close) ( hb_filter_private_t * );
-
+
hb_filter_private_t * private_data;
//hb_buffer_t * buffer;
#endif