h264: do not return on sidedata allocation failure

Not having allocated it is not a good reason to leave the object
in an undetermined state. Though a particular setting like the
AV_EF_* flags could be useful to control that behaviour.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/84/head
Christophe Gisquet 10 years ago committed by Michael Niedermayer
parent aaaf7261b7
commit 585047bb7d
  1. 16
      libavcodec/h264.c

@ -835,9 +835,7 @@ static void decode_postinit(H264Context *h, int setup_finished)
h->content_interpretation_type > 0 &&
h->content_interpretation_type < 3) {
AVStereo3D *stereo = av_stereo3d_create_side_data(&cur->f);
if (!stereo)
return;
if (stereo) {
switch (h->frame_packing_arrangement_type) {
case 0:
stereo->type = AV_STEREO3D_CHECKERBOARD;
@ -867,6 +865,7 @@ static void decode_postinit(H264Context *h, int setup_finished)
if (h->content_interpretation_type == 2)
stereo->flags = AV_STEREO3D_FLAG_INVERT;
}
}
if (h->sei_display_orientation_present &&
@ -875,12 +874,11 @@ static void decode_postinit(H264Context *h, int setup_finished)
AVFrameSideData *rotation = av_frame_new_side_data(&cur->f,
AV_FRAME_DATA_DISPLAYMATRIX,
sizeof(int32_t) * 9);
if (!rotation)
return;
av_display_rotation_set((int32_t *)rotation->data, angle);
av_display_matrix_flip((int32_t *)rotation->data,
h->sei_vflip, h->sei_hflip);
if (rotation) {
av_display_rotation_set((int32_t *)rotation->data, angle);
av_display_matrix_flip((int32_t *)rotation->data,
h->sei_vflip, h->sei_hflip);
}
}
cur->mmco_reset = h->mmco_reset;

Loading…
Cancel
Save