Browse Source

mediacodec: create picture only on required paths

No functional changes, as all paths create a picture for now.
mmdevice-clean/8
Thomas Guillem 7 months ago
committed by Steve Lhomme
parent
commit
2d49f20489
  1. 16
      modules/codec/omxil/mediacodec.c

16
modules/codec/omxil/mediacodec.c

@ -1214,12 +1214,6 @@ static int Video_ProcessOutput(decoder_t *p_dec, mc_api_out *p_out,
return p_sys->api.release_out(&p_sys->api, p_out->buf.i_index, false);
}
picture_t *p_pic = NewPicture(p_dec, p_out->buf.i_ts);
if (!p_pic) {
msg_Warn(p_dec, "NewPicture failed");
return p_sys->api.release_out(&p_sys->api, p_out->buf.i_index, false);
}
if (p_sys->api.b_direct_rendering)
{
struct asurface_picture_ctx *apctx =
@ -1228,7 +1222,14 @@ static int Video_ProcessOutput(decoder_t *p_dec, mc_api_out *p_out,
assert(apctx->s.vctx);
vlc_video_context_Hold(apctx->s.vctx);
p_pic->context = &apctx->s;
*pp_out_pic = p_pic;
} else {
picture_t *p_pic = NewPicture(p_dec, p_out->buf.i_ts);
if (!p_pic) {
msg_Warn(p_dec, "NewPicture failed");
return p_sys->api.release_out(&p_sys->api, p_out->buf.i_index, false);
}
unsigned int chroma_div;
GetVlcChromaSizes(p_dec->fmt_out.i_codec,
p_dec->fmt_out.video.i_width,
@ -1243,9 +1244,8 @@ static int Video_ProcessOutput(decoder_t *p_dec, mc_api_out *p_out,
picture_Release(p_pic);
return -1;
}
*pp_out_pic = p_pic;
}
assert(!(*pp_out_pic));
*pp_out_pic = p_pic;
return 1;
} else {
assert(p_out->type == MC_OUT_TYPE_CONF);

Loading…
Cancel
Save