typedef struct hb_audio_s hb_audio_t;
typedef struct hb_audio_config_s hb_audio_config_t;
typedef struct hb_subtitle_s hb_subtitle_t;
+typedef struct hb_metadata_s hb_metadata_t;
typedef struct hb_state_s hb_state_t;
typedef union hb_esconfig_u hb_esconfig_t;
typedef struct hb_work_private_s hb_work_private_t;
int subtitle_force;
char * native_language;
+ 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
+ // at the position of preview n
+ int seek_points; // out of N previews
+ uint32_t frames_to_skip; // decode but discard this many frames
+ // initially (for frame accurate positioning
+ // to non-I frames).
+
#ifdef __LIBHB__
/* Internal data */
hb_handle_t * h;
int track; /* Input track number */
PRIVATE uint32_t codec; /* Input audio codec */
PRIVATE uint32_t codec_param; /* per-codec config info */
+ PRIVATE uint32_t version; /* Bitsream version */
+ PRIVATE uint32_t mode; /* Bitstream mode, codec dependent encoding */
PRIVATE int samplerate; /* Input sample rate (Hz) */
PRIVATE int bitrate; /* Input bitrate (kbps) */
PRIVATE int channel_layout;
PRIVATE char description[1024];
PRIVATE char simple[1024];
PRIVATE char iso639_2[4];
+ PRIVATE uint8_t type; /* normal, visually impared, directors */
} lang;
};
int id;
char lang[1024];
char iso639_2[4];
+ uint8_t type; /* Closed Caption, Childrens, Directors etc */
int hits; /* How many hits/occurrences of this subtitle */
int forced_hits; /* How many forced hits in this subtitle */
#endif
};
+struct hb_metadata_s
+{
+ char name[255];
+ char artist[255];
+ char composer[255];
+ char release_date[255];
+ char comment[1024];
+ char album[255];
+ char genre[255];
+ enum arttype {UNKNOWN, BMP, GIF87A, GIF89A, JPG, PNG, TIFFL, TIFFB} coverart_type;
+ uint32_t coverart_size;
+ uint8_t *coverart;
+};
+
struct hb_title_s
{
char dvd[1024];
int rate;
int rate_base;
int crop[4];
- enum { HB_MPEG2_DEMUXER = 0, HB_NULL_DEMUXER } demuxer;
+ enum { HB_MPEG2_PS_DEMUXER = 0, HB_MPEG2_TS_DEMUXER, HB_NULL_DEMUXER } demuxer;
int detected_interlacing;
int video_id; /* demuxer stream id for video */
int video_codec; /* worker object id of video codec */
int video_codec_param; /* codec specific config */
- int flaky_clock; /* can lose reference clock */
- /* (for over-the-air transport streams) */
const char *video_codec_name;
int video_bitrate;
const char *container_name;
uint32_t palette[16];
+ hb_metadata_t *metadata;
+
hb_list_t * list_chapter;
hb_list_t * list_audio;
hb_list_t * list_subtitle;
int rate;
int rate_base;
int flags;
+ int version;
+ int mode;
union {
struct { // info only valid for video decoders
int width;