[vlc-devel] [PATCH] mediacodec: detect size changed by comparing visible size

Thomas Guillem thomas at gllm.fr
Fri Aug 10 09:01:07 CEST 2018


Do you have an hevc sample for that ?

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


More information about the vlc-devel mailing list