Некоторые устройства 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? Если нет, то какие-либо предложения?
Спасибо.