[vlc-devel] [PATCH] mediacodec: detect size changed by comparing visible size
Zhao Zhili
quinkblack at foxmail.com
Fri Aug 10 10:47:06 CEST 2018
On 2018年08月10日 15:01, Thomas Guillem wrote:
> Do you have an hevc sample for that ?
I managed to create an mov to show the align issue with x265
--min-cu-size option:
-c:v libx265 -x265-params preset=ultrafast:min-cu-size=32
https://drive.google.com/file/d/1ufe8wfjtXaH6BfrooQDJU0Te1hDDAArE/view?usp=sharing
But I don't know how to force add sps/pps per GOP for mov (or is it
possible?)
273450E Width: 320 (0x0140)
2734510 Height: 240 (0x00F0)
2734594 sps_seq_parameter_set_id: 0 (0x0)
2734594 chroma_format_idc: 1 (0x1) - 4:2:0
2734594 pic_width_in_luma_samples: 320 (0x0140)
2734596 pic_height_in_luma_samples: 256 (0x0100)
2734598 conformance_window_flag (2 bytes)
2734598 conformance_window_flag: Yes
2734599 conf_win_left_offset: 0 (0x0)
2734599 conf_win_right_offset: 0 (0x0)
2734599 conf_win_top_offset: 0 (0x0)
2734599 conf_win_bottom_offset: 8 (0x08)
273459A bit_depth_luma_minus8: 0 (0x0)
273459A bit_depth_chroma_minus8: 0 (0x0)
273459A log2_max_pic_order_cnt_lsb_minus4: 4 (0x4)
273459B sps_sub_layer_ordering_info_present_flag: Yes
273459B SubLayer (1 bytes)
273459B sps_max_dec_pic_buffering_minus1: 5 (0x5)
273459B sps_max_num_reorder_pics: 2 (0x2)
273459C sps_max_latency_increase_plus1: 5 (0x5)
273459C log2_min_luma_coding_block_size_minus3: 2 (0x2)
273459D log2_diff_max_min_luma_coding_block_size: 1 (0x1)
273459D log2_min_transform_block_size_minus2: 0 (0x0)
273459D log2_diff_max_min_transform_block_size: 3 (0x3)
>
> On Thu, Aug 9, 2018, at 04:20, Zhao Zhili wrote:
>> The commit message is incorrect, please see the next patch. And
>> for my bad English grammar please feel free to reword the commit
>> message if the patch itself is correct.
>>
>>
>> On 2018年08月09日 09:52, Zhao Zhili wrote:
>>> Input size may not aligned to the requirement of codec. For H.264 We can
>>> divide the size by macroblock size before comparing, but it doesn't work
>>> with HEVC.
>>> ---
>>> modules/codec/omxil/mediacodec.c | 14 +++++++-------
>>> 1 file changed, 7 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/modules/codec/omxil/mediacodec.c b/modules/codec/omxil/mediacodec.c
>>> index 9ee2cf6..40bc5d7 100644
>>> --- a/modules/codec/omxil/mediacodec.c
>>> +++ b/modules/codec/omxil/mediacodec.c
>>> @@ -112,7 +112,7 @@ typedef struct
>>> {
>>> void *p_surface, *p_jsurface;
>>> unsigned i_angle;
>>> - unsigned i_input_width, i_input_height;
>>> + unsigned i_input_visible_width, i_input_visible_height;
>>> unsigned int i_stride, i_slice_height;
>>> int i_pixel_format;
>>> struct hxxx_helper hh;
>>> @@ -259,10 +259,10 @@ static void HXXXInitSize(decoder_t *p_dec, bool *p_size_changed)
>>> unsigned i_w, i_h, i_vw, i_vh;
>>> hxxx_helper_get_current_picture_size(hh, &i_w, &i_h, &i_vw, &i_vh);
>>>
>>> - *p_size_changed = (i_w != p_sys->video.i_input_width
>>> - || i_h != p_sys->video.i_input_height);
>>> - p_sys->video.i_input_width = i_w;
>>> - p_sys->video.i_input_height = i_h;
>>> + *p_size_changed = (i_vw != p_sys->video.i_input_visible_width
>>> + || i_vh != p_sys->video.i_input_visible_height);
>>> + p_sys->video.i_input_visible_width = i_vw;
>>> + p_sys->video.i_input_visible_height = i_vh;
>>> /* fmt_out video size will be updated by mediacodec output callback */
>>> }
>>> }
>>> @@ -731,9 +731,9 @@ static int OpenDecoder(vlc_object_t *p_this, pf_MediaCodecApi_init pf_init)
>>> p_dec->fmt_out.video.i_sar_den = 1;
>>> }
>>>
>>> - p_sys->video.i_input_width =
>>> + p_sys->video.i_input_visible_width = p_dec->fmt_in.video.i_visible_width;
>>> + p_sys->video.i_input_visible_height = p_dec->fmt_in.video.i_visible_height;
>>> p_dec->fmt_out.video.i_visible_width = p_dec->fmt_out.video.i_width;
>>> - p_sys->video.i_input_height =
>>> p_dec->fmt_out.video.i_visible_height = p_dec->fmt_out.video.i_height;
>>>
>>> if (UpdateVout(p_dec) != VLC_SUCCESS)
>>
>>
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list