11 #include "cores/FFmpeg.h" 16 #include <libavutil/avutil.h> 17 #include <libavformat/avformat.h> 18 #include <libavfilter/avfilter.h> 19 #include <libavcodec/avcodec.h> 46 int chroma_format_idc;
47 int separate_colour_plane_flag;
48 int bit_depth_luma_minus8;
49 int bit_depth_chroma_minus8;
50 int qpprime_y_zero_transform_bypass_flag;
51 int seq_scaling_matrix_present_flag;
53 int log2_max_frame_num_minus4;
54 int pic_order_cnt_type;
55 int log2_max_pic_order_cnt_lsb_minus4;
57 int max_num_ref_frames;
58 int gaps_in_frame_num_value_allowed_flag;
59 int pic_width_in_mbs_minus1;
60 int pic_height_in_map_units_minus1;
62 int frame_mbs_only_flag;
63 int mb_adaptive_frame_field_flag;
65 int direct_8x8_inference_flag;
67 int frame_cropping_flag;
68 int frame_crop_left_offset;
69 int frame_crop_right_offset;
70 int frame_crop_top_offset;
71 int frame_crop_bottom_offset;
80 static bool Open() {
return true; }
82 static bool CanStartDecode(
const uint8_t *buf,
int buf_size);
91 bool Open(
enum AVCodecID codec, uint8_t *in_extradata,
int in_extrasize,
bool to_annexb);
93 bool NeedConvert(
void)
const {
return m_convert_bitstream; }
94 bool Convert(uint8_t *pData,
int iSize);
95 uint8_t* GetConvertBuffer(
void)
const;
96 int GetConvertSize()
const;
97 uint8_t* GetExtraData();
98 const uint8_t* GetExtraData()
const;
99 int GetExtraSize()
const;
100 void ResetStartDecode(
void);
101 bool CanStartDecode()
const;
102 void SetConvertDovi(
bool value) { m_convert_dovi = value; }
103 void SetRemoveDovi(
bool value) { m_removeDovi = value; }
104 void SetRemoveHdr10Plus(
bool value) { m_removeHdr10Plus = value; }
106 static bool mpeg2_sequence_header(
const uint8_t *data,
const uint32_t size,
mpeg2_sequence *sequence);
109 static int avc_parse_nal_units(AVIOContext *pb,
const uint8_t *buf_in,
int size);
110 static int avc_parse_nal_units_buf(
const uint8_t *buf_in, uint8_t **buf,
int *size);
111 int isom_write_avcc(AVIOContext *pb,
const uint8_t *data,
int len);
113 bool IsIDR(uint8_t unit_type);
114 bool IsSlice(uint8_t unit_type);
115 bool BitstreamConvertInitAVC(
void *in_extradata,
int in_extrasize);
116 bool BitstreamConvertInitHEVC(
void *in_extradata,
int in_extrasize);
117 bool BitstreamConvert(uint8_t* pData,
int iSize, uint8_t **poutbuf,
int *poutbuf_size);
118 static void BitstreamAllocAndCopy(uint8_t** poutbuf,
120 const uint8_t* sps_pps,
121 uint32_t sps_pps_size,
129 uint8_t idr_sps_pps_seen;
130 uint8_t *sps_pps_data;
134 uint8_t *m_convertBuffer;
136 uint8_t *m_inputBuffer;
139 uint32_t m_sps_pps_size;
141 bool m_convert_bitstream;
145 bool m_convert_3byteTo4byteNALSize;
146 bool m_convert_bytestream;
151 bool m_removeHdr10Plus;
Definition: BitstreamConverter.h:30
Definition: BitstreamConverter.h:40
Definition: BitstreamConverter.h:22
Definition: BitstreamConverter.h:85
Definition: BitstreamConverter.h:74
Definition: BitstreamConverter.h:126