mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-19 05:17:04 +00:00
avcodec/mpeg12dec: respect side data preference
We only need to consider side data types that may possibly come from the packet. Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
ed3cc8fc65
commit
ffb8dc7be6
@ -1306,20 +1306,20 @@ static int mpeg_field_start(MpegEncContext *s, const uint8_t *buf, int buf_size)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pan_scan = av_frame_new_side_data(s->current_picture_ptr->f,
|
ret = ff_frame_new_side_data(s->avctx, s->current_picture_ptr->f,
|
||||||
AV_FRAME_DATA_PANSCAN,
|
AV_FRAME_DATA_PANSCAN, sizeof(s1->pan_scan),
|
||||||
sizeof(s1->pan_scan));
|
&pan_scan);
|
||||||
if (!pan_scan)
|
if (ret < 0)
|
||||||
return AVERROR(ENOMEM);
|
return ret;
|
||||||
memcpy(pan_scan->data, &s1->pan_scan, sizeof(s1->pan_scan));
|
if (pan_scan)
|
||||||
|
memcpy(pan_scan->data, &s1->pan_scan, sizeof(s1->pan_scan));
|
||||||
|
|
||||||
if (s1->a53_buf_ref) {
|
if (s1->a53_buf_ref) {
|
||||||
AVFrameSideData *sd = av_frame_new_side_data_from_buf(
|
ret = ff_frame_new_side_data_from_buf(
|
||||||
s->current_picture_ptr->f, AV_FRAME_DATA_A53_CC,
|
s->avctx, s->current_picture_ptr->f, AV_FRAME_DATA_A53_CC,
|
||||||
s1->a53_buf_ref);
|
&s1->a53_buf_ref, NULL);
|
||||||
if (!sd)
|
if (ret < 0)
|
||||||
av_buffer_unref(&s1->a53_buf_ref);
|
return ret;
|
||||||
s1->a53_buf_ref = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s1->has_stereo3d) {
|
if (s1->has_stereo3d) {
|
||||||
@ -1332,13 +1332,13 @@ static int mpeg_field_start(MpegEncContext *s, const uint8_t *buf, int buf_size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (s1->has_afd) {
|
if (s1->has_afd) {
|
||||||
AVFrameSideData *sd =
|
AVFrameSideData *sd;
|
||||||
av_frame_new_side_data(s->current_picture_ptr->f,
|
ret = ff_frame_new_side_data(s->avctx, s->current_picture_ptr->f,
|
||||||
AV_FRAME_DATA_AFD, 1);
|
AV_FRAME_DATA_AFD, 1, &sd);
|
||||||
if (!sd)
|
if (ret < 0)
|
||||||
return AVERROR(ENOMEM);
|
return ret;
|
||||||
|
if (sd)
|
||||||
*sd->data = s1->afd;
|
*sd->data = s1->afd;
|
||||||
s1->has_afd = 0;
|
s1->has_afd = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user