[FFmpeg-devel] [PATCH 32/38] avcodec/mpeg12dec: use ff_frame_new_side_data

Anton Khirnov anton at khirnov.net
Fri Feb 23 15:58:54 EET 2024


From: Niklas Haas <git at haasn.dev>

For consistency, even though this cannot be overriden at the packet
level.
---
 libavcodec/mpeg12dec.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c
index 96987f5a8e..1038a08637 100644
--- a/libavcodec/mpeg12dec.c
+++ b/libavcodec/mpeg12dec.c
@@ -2532,15 +2532,17 @@ static int mpeg_decode_frame(AVCodecContext *avctx, AVFrame *picture,
 
         if (s->timecode_frame_start != -1 && *got_output) {
             char tcbuf[AV_TIMECODE_STR_SIZE];
-            AVFrameSideData *tcside = av_frame_new_side_data(picture,
-                                                             AV_FRAME_DATA_GOP_TIMECODE,
-                                                             sizeof(int64_t));
-            if (!tcside)
-                return AVERROR(ENOMEM);
-            memcpy(tcside->data, &s->timecode_frame_start, sizeof(int64_t));
+            AVFrameSideData *tcside;
+            ret = ff_frame_new_side_data(avctx, picture, AV_FRAME_DATA_GOP_TIMECODE,
+                                         sizeof(int64_t), &tcside);
+            if (ret < 0)
+                return ret;
+            if (tcside) {
+                memcpy(tcside->data, &s->timecode_frame_start, sizeof(int64_t));
 
-            av_timecode_make_mpeg_tc_string(tcbuf, s->timecode_frame_start);
-            av_dict_set(&picture->metadata, "timecode", tcbuf, 0);
+                av_timecode_make_mpeg_tc_string(tcbuf, s->timecode_frame_start);
+                av_dict_set(&picture->metadata, "timecode", tcbuf, 0);
+            }
 
             s->timecode_frame_start = -1;
         }
-- 
2.42.0



More information about the ffmpeg-devel mailing list