Медиакодек Android декодирует фрейм с ошибкой sps 'frame_cropping_flag 1 - PullRequest
0 голосов
/ 12 октября 2019

Некоторые устройства Android не могут HW декодировать кадры со специальным разрешением (112 * 160) от iOS, правильно используя медиа-кодек. После исследования кажется, что медиа-кодек Android этих устройств не может обработать sps с frame_cropping_flag 1.

Кадр с таким же разрешением (112 * 160), закодированный с iOS, имеет sps с frame_cropping_flag 1, но кадр, закодированный с android, имеет spswith frame_cropping_flag 0

sps фрейма из iOS:

profile_idc = 66 (PROFILE_IDC_Baseline) 
constraint_set0_flag = 0 
constraint_set1_flag = 0 
constraint_set2_flag = 0 
constraint_set3_flag = 0 
reserved_zero_4bits = 0 
level_idc = 31 
seq_parameter_set_id = 0 
log2_max_frame_num_minus4 = 1 
pic_order_cnt_type = 0 
log2_max_pic_order_cnt_lsb_minus4 = 2 
num_ref_frames = 1 
gaps_in_frame_num_value_allowed_flag = 0 
pic_width_in_mbs_minus1 = 11 (192) 
pic_height_in_map_units_minus1 = 9 (160) 
frame_mbs_only_flag = 1 
direct_8x8_inference_flag = 1 
frame_cropping_flag = 1 
frame_crop_left_offset = 0 
frame_crop_right_offset = 40 
frame_crop_top_offset = 0 
frame_crop_bottom_offset = 0 

sps фрейма из Android:

profile_idc = 100 (PROFILE_IDC_High) 
constraint_set0_flag = 0 
constraint_set1_flag = 0 
constraint_set2_flag = 0 
constraint_set3_flag = 0 
reserved_zero_4bits = 0 
level_idc = 11 
seq_parameter_set_id = 0 
chroma_format_idc = 1 
bit_depth_luma_minus8 = 0 
bit_depth_chroma_minus8 = 0 
lossless_qpprime_flag = 0 
seq_scaling_matrix_present_flag = 0 
log2_max_frame_num_minus4 = 0 
pic_order_cnt_type = 2 
num_ref_frames = 1 
gaps_in_frame_num_value_allowed_flag = 0 
pic_width_in_mbs_minus1 = 6 (112) 
pic_height_in_map_units_minus1 = 9 (160) 
frame_mbs_only_flag = 1 
direct_8x8_inference_flag = 1 
frame_cropping_flag = 0 
vui_parameters_present_flag = 1 

Так как я не имею представления изменить библиотеку mediacodec вAndroid-устройства, есть ли способ изменить кодировщик iOS для кодирования кадра с SP как Android? Если нет, то какие-либо предложения?

Спасибо.

...