[FFmpeg-devel] [PATCH 1/2] avcodec: remove AVCodecContext->metadata
Michael Niedermayer
michaelni at gmx.at
Wed Mar 13 19:48:37 CET 2013
On Wed, Mar 13, 2013 at 06:25:34PM +0100, Clément Bœsch wrote:
> On Wed, Mar 13, 2013 at 06:15:57PM +0100, Clément Bœsch wrote:
> > On Wed, Mar 13, 2013 at 05:51:06PM +0100, Hendrik Leppkes wrote:
> > > This field was only ever set and freed from avcodec, and not otherwise
> > > used. However, because frames are refcounted now, avcodec cannot make any
> > > assumptions about the lifetime of the frame metadata, which can result in
> > > double-frees or leaked memory.
> > > ---
> > > libavcodec/avcodec.h | 7 -------
> > > libavcodec/utils.c | 3 ---
> > > 2 files changed, 10 deletions(-)
> > >
> > > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> > > index 7145a46..a46a8d6 100644
> > > --- a/libavcodec/avcodec.h
> > > +++ b/libavcodec/avcodec.h
> > > @@ -2793,13 +2793,6 @@ typedef struct AVCodecContext {
> > > int64_t pts_correction_last_dts; /// DTS of the last frame
> > >
> > > /**
> > > - * Current frame metadata.
> > > - * - decoding: maintained and used by libavcodec, not intended to be used by user apps
> > > - * - encoding: unused
> > > - */
> > > - AVDictionary *metadata;
> > > -
> > > - /**
> > > * Character encoding of the input subtitles file.
> > > * - decoding: set by user
> > > * - encoding: unused
> > > diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> > > index 4ed64c9..6cd8026 100644
> > > --- a/libavcodec/utils.c
> > > +++ b/libavcodec/utils.c
> > > @@ -1846,7 +1846,6 @@ static int add_metadata_from_side_data(AVCodecContext *avctx, AVFrame *frame)
> > > const uint8_t *side_metadata;
> > > const uint8_t *end;
> > >
> > > - av_dict_free(&avctx->metadata);
> > > side_metadata = av_packet_get_side_data(avctx->pkt,
> > > AV_PKT_DATA_STRINGS_METADATA, &size);
> > > if (!side_metadata)
> > > @@ -1861,7 +1860,6 @@ static int add_metadata_from_side_data(AVCodecContext *avctx, AVFrame *frame)
> > > side_metadata = val + strlen(val) + 1;
> > > }
> > > end:
> > > - avctx->metadata = av_frame_get_metadata(frame);
> > > return ret;
> > > }
> >
> > I think that whole code might not be necessary anymore: its purpose was to
> > make a gate between the lavfi device and the AVFrame, see 6fb2fd89.
> >
> > My guess is that this glue code is not necessary anymore. And the fact
> > that the scene detect metadata test passes while
> > add_metadata_from_side_data() call isn't present in the decode video
> > function kind of confirms this. It shouldn't be necessary for audio where
> > you may be able to drop it as well.
> >
>
> Please disregard this non-sense. Patch LGTM if it passes fate.
patch applied
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If a bugfix only changes things apparently unrelated to the bug with no
further explanation, that is a good sign that the bugfix is wrong.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130313/e6cb54f7/attachment.asc>
More information about the ffmpeg-devel
mailing list