avcodec/mpegpicture: Mark dummy frames as such
This will allow to avoid outputting them. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@@ -270,6 +270,7 @@ void ff_mpeg_unref_picture(Picture *pic)
|
|||||||
if (pic->needs_realloc)
|
if (pic->needs_realloc)
|
||||||
free_picture_tables(pic);
|
free_picture_tables(pic);
|
||||||
|
|
||||||
|
pic->dummy = 0;
|
||||||
pic->field_picture = 0;
|
pic->field_picture = 0;
|
||||||
pic->b_frame_score = 0;
|
pic->b_frame_score = 0;
|
||||||
pic->needs_realloc = 0;
|
pic->needs_realloc = 0;
|
||||||
@@ -331,6 +332,7 @@ int ff_mpeg_ref_picture(Picture *dst, Picture *src)
|
|||||||
ff_refstruct_replace(&dst->hwaccel_picture_private,
|
ff_refstruct_replace(&dst->hwaccel_picture_private,
|
||||||
src->hwaccel_picture_private);
|
src->hwaccel_picture_private);
|
||||||
|
|
||||||
|
dst->dummy = src->dummy;
|
||||||
dst->field_picture = src->field_picture;
|
dst->field_picture = src->field_picture;
|
||||||
dst->b_frame_score = src->b_frame_score;
|
dst->b_frame_score = src->b_frame_score;
|
||||||
dst->needs_realloc = src->needs_realloc;
|
dst->needs_realloc = src->needs_realloc;
|
||||||
|
@@ -70,6 +70,7 @@ typedef struct Picture {
|
|||||||
/// RefStruct reference for hardware accelerator private data
|
/// RefStruct reference for hardware accelerator private data
|
||||||
void *hwaccel_picture_private;
|
void *hwaccel_picture_private;
|
||||||
|
|
||||||
|
int dummy; ///< Picture is a dummy and should not be output
|
||||||
int field_picture; ///< whether or not the picture was encoded in separate fields
|
int field_picture; ///< whether or not the picture was encoded in separate fields
|
||||||
|
|
||||||
int b_frame_score;
|
int b_frame_score;
|
||||||
|
@@ -288,6 +288,8 @@ static int av_cold alloc_dummy_frame(MpegEncContext *s, Picture **picp, Picture
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
pic->dummy = 1;
|
||||||
|
|
||||||
ff_mpeg_unref_picture(wpic);
|
ff_mpeg_unref_picture(wpic);
|
||||||
ret = ff_mpeg_ref_picture(wpic, pic);
|
ret = ff_mpeg_ref_picture(wpic, pic);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
Reference in New Issue
Block a user