Andreas Rheinhardt: > AVCodec is only ever used as an incomplete type (i.e. via a pointer > to an AVCodec) in avformat.h and it is not really part of the core > of avformat.h or libavformat; almost none of our internal users > make use of it (and none make use of hwcontext.h, which is implicitly > included). So switch to use struct AVCodec, but continue to include > codec.h for external users for compatibility. > > Also, do the same for AVFrame and frame.h, which is implicitly included > by codec.h (via lavu/hwcontext.h). > > Also, remove an unnecessary inclusion of <time.h>. > > Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> > --- > libavdevice/alsa_enc.c | 1 + > libavdevice/opengl_enc.c | 1 + > libavdevice/pulse_audio_enc.c | 1 + > libavdevice/xv.c | 1 + > libavformat/asfdec_o.c | 2 ++ > libavformat/avformat.c | 2 ++ > libavformat/avformat.h | 29 ++++++++++++++++------------- > libavformat/dashdec.c | 1 + > libavformat/dashenc.c | 1 + > libavformat/dhav.c | 2 ++ > libavformat/ftp.c | 1 + > libavformat/hlsenc.c | 1 + > libavformat/hlsplaylist.c | 1 + > libavformat/http.c | 1 + > libavformat/img2enc.c | 2 ++ > libavformat/internal.h | 4 ++-- > libavformat/mlvdec.c | 2 ++ > libavformat/mux.c | 2 ++ > libavformat/mux.h | 2 +- > libavformat/mxfdec.c | 1 + > libavformat/uncodedframecrcenc.c | 1 + > libavformat/wavenc.c | 1 + > libavformat/webmdashenc.c | 1 + > libavformat/wtvdec.c | 1 + > libavformat/yuv4mpegenc.c | 1 + > 25 files changed, 47 insertions(+), 16 deletions(-) > > diff --git a/libavdevice/alsa_enc.c b/libavdevice/alsa_enc.c > index 62a20c7ba4..4c7805065e 100644 > --- a/libavdevice/alsa_enc.c > +++ b/libavdevice/alsa_enc.c > @@ -39,6 +39,7 @@ > > #include <alsa/asoundlib.h> > > +#include "libavutil/frame.h" > #include "libavutil/internal.h" > #include "libavutil/time.h" > > diff --git a/libavdevice/opengl_enc.c b/libavdevice/opengl_enc.c > index 1b0cf5aa8f..80feda7072 100644 > --- a/libavdevice/opengl_enc.c > +++ b/libavdevice/opengl_enc.c > @@ -49,6 +49,7 @@ > #endif > > #include "libavutil/common.h" > +#include "libavutil/frame.h" > #include "libavutil/pixdesc.h" > #include "libavutil/log.h" > #include "libavutil/opt.h" > diff --git a/libavdevice/pulse_audio_enc.c b/libavdevice/pulse_audio_enc.c > index 3d8323233f..9e594c6424 100644 > --- a/libavdevice/pulse_audio_enc.c > +++ b/libavdevice/pulse_audio_enc.c > @@ -26,6 +26,7 @@ > #include "libavformat/mux.h" > #include "libavformat/version.h" > #include "libavutil/channel_layout.h" > +#include "libavutil/frame.h" > #include "libavutil/internal.h" > #include "libavutil/opt.h" > #include "libavutil/time.h" > diff --git a/libavdevice/xv.c b/libavdevice/xv.c > index 441f854121..b3d79d57a8 100644 > --- a/libavdevice/xv.c > +++ b/libavdevice/xv.c > @@ -32,6 +32,7 @@ > #include <X11/extensions/Xvlib.h> > #include <sys/shm.h> > > +#include "libavutil/frame.h" > #include "libavutil/opt.h" > #include "libavutil/pixdesc.h" > #include "libavutil/imgutils.h" > diff --git a/libavformat/asfdec_o.c b/libavformat/asfdec_o.c > index 2b407c016f..10942ecfa0 100644 > --- a/libavformat/asfdec_o.c > +++ b/libavformat/asfdec_o.c > @@ -19,6 +19,8 @@ > * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 > USA > */ > > +#include <time.h> > + > #include "libavutil/attributes.h" > #include "libavutil/common.h" > #include "libavutil/dict.h" > diff --git a/libavformat/avformat.c b/libavformat/avformat.c > index 356b4de931..7ff0cf3429 100644 > --- a/libavformat/avformat.c > +++ b/libavformat/avformat.c > @@ -23,12 +23,14 @@ > #include "libavutil/avassert.h" > #include "libavutil/avstring.h" > #include "libavutil/channel_layout.h" > +#include "libavutil/frame.h" > #include "libavutil/intreadwrite.h" > #include "libavutil/mem.h" > #include "libavutil/opt.h" > #include "libavutil/pixfmt.h" > #include "libavutil/samplefmt.h" > #include "libavcodec/avcodec.h" > +#include "libavcodec/codec.h" > #include "libavcodec/bsf.h" > #include "libavcodec/codec_desc.h" > #include "libavcodec/packet_internal.h" > diff --git a/libavformat/avformat.h b/libavformat/avformat.h > index 1916aa2dc5..10ee3c87c6 100644 > --- a/libavformat/avformat.h > +++ b/libavformat/avformat.h > @@ -307,10 +307,8 @@ > * @} > */ > > -#include <time.h> > #include <stdio.h> /* FILE */ > > -#include "libavcodec/codec.h" > #include "libavcodec/codec_par.h" > #include "libavcodec/defs.h" > #include "libavcodec/packet.h" > @@ -325,10 +323,13 @@ > * to avoid unnecessary rebuilds. When included externally, keep including > * the full version information. */ > #include "libavformat/version.h" > + > +#include "libavutil/frame.h" > +#include "libavcodec/codec.h" > #endif > > struct AVFormatContext; > - > +struct AVFrame; > struct AVDeviceInfoList; > > /** > @@ -1569,7 +1570,7 @@ typedef struct AVFormatContext { > * the same codec_id. > * Demuxing: Set by user > */ > - const AVCodec *video_codec; > + const struct AVCodec *video_codec; > > /** > * Forced audio codec. > @@ -1577,7 +1578,7 @@ typedef struct AVFormatContext { > * the same codec_id. > * Demuxing: Set by user > */ > - const AVCodec *audio_codec; > + const struct AVCodec *audio_codec; > > /** > * Forced subtitle codec. > @@ -1585,7 +1586,7 @@ typedef struct AVFormatContext { > * the same codec_id. > * Demuxing: Set by user > */ > - const AVCodec *subtitle_codec; > + const struct AVCodec *subtitle_codec; > > /** > * Forced data codec. > @@ -1593,7 +1594,7 @@ typedef struct AVFormatContext { > * the same codec_id. > * Demuxing: Set by user > */ > - const AVCodec *data_codec; > + const struct AVCodec *data_codec; > > /** > * Number of bytes to be written as padding in a metadata header. > @@ -1842,7 +1843,7 @@ const AVClass *av_stream_get_class(void); > * > * @return newly created stream or NULL on error. > */ > -AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c); > +AVStream *avformat_new_stream(AVFormatContext *s, const struct AVCodec *c); > > /** > * Wrap an existing array as stream side data. > @@ -2076,7 +2077,7 @@ int av_find_best_stream(AVFormatContext *ic, > enum AVMediaType type, > int wanted_stream_nb, > int related_stream, > - const AVCodec **decoder_ret, > + const struct AVCodec **decoder_ret, > int flags); > > /** > @@ -2352,7 +2353,7 @@ int av_interleaved_write_frame(AVFormatContext *s, > AVPacket *pkt); > * See av_interleaved_write_uncoded_frame() for details. > */ > int av_write_uncoded_frame(AVFormatContext *s, int stream_index, > - AVFrame *frame); > + struct AVFrame *frame); > > /** > * Write an uncoded frame to an output media file. > @@ -2371,7 +2372,7 @@ int av_write_uncoded_frame(AVFormatContext *s, int > stream_index, > * @return >=0 for success, a negative code on error > */ > int av_interleaved_write_uncoded_frame(AVFormatContext *s, int stream_index, > - AVFrame *frame); > + struct AVFrame *frame); > > /** > * Test whether a muxer supports uncoded frame. > @@ -2759,7 +2760,8 @@ const struct AVCodecTag > *avformat_get_mov_audio_tags(void); > * @param frame the frame with the aspect ratio to be determined > * @return the guessed (valid) sample_aspect_ratio, 0/1 if no idea > */ > -AVRational av_guess_sample_aspect_ratio(AVFormatContext *format, AVStream > *stream, AVFrame *frame); > +AVRational av_guess_sample_aspect_ratio(AVFormatContext *format, AVStream > *stream, > + struct AVFrame *frame); > > /** > * Guess the frame rate, based on both the container and codec information. > @@ -2769,7 +2771,8 @@ AVRational av_guess_sample_aspect_ratio(AVFormatContext > *format, AVStream *strea > * @param frame the frame for which the frame rate should be determined, may > be NULL > * @return the guessed (valid) frame rate, 0/1 if no idea > */ > -AVRational av_guess_frame_rate(AVFormatContext *ctx, AVStream *stream, > AVFrame *frame); > +AVRational av_guess_frame_rate(AVFormatContext *ctx, AVStream *stream, > + struct AVFrame *frame); > > /** > * Check if the stream st contained in s is matched by the stream specifier > diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c > index 29d4680c68..f4af625814 100644 > --- a/libavformat/dashdec.c > +++ b/libavformat/dashdec.c > @@ -20,6 +20,7 @@ > * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 > USA > */ > #include <libxml/parser.h> > +#include <time.h> > #include "libavutil/bprint.h" > #include "libavutil/opt.h" > #include "libavutil/time.h" > diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c > index 17fe5f430c..69ceae2cbf 100644 > --- a/libavformat/dashenc.c > +++ b/libavformat/dashenc.c > @@ -22,6 +22,7 @@ > > #include "config.h" > #include "config_components.h" > +#include <time.h> > #if HAVE_UNISTD_H > #include <unistd.h> > #endif > diff --git a/libavformat/dhav.c b/libavformat/dhav.c > index 4e720f2a26..2ec4857f29 100644 > --- a/libavformat/dhav.c > +++ b/libavformat/dhav.c > @@ -20,6 +20,8 @@ > * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 > USA > */ > > +#include <time.h> > + > #include "libavutil/parseutils.h" > #include "avio_internal.h" > #include "avformat.h" > diff --git a/libavformat/ftp.c b/libavformat/ftp.c > index 883668b37b..f9b069a59e 100644 > --- a/libavformat/ftp.c > +++ b/libavformat/ftp.c > @@ -19,6 +19,7 @@ > */ > > #include <string.h> > +#include <time.h> > > #include "libavutil/avstring.h" > #include "libavutil/internal.h" > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c > index 27d97f5f72..004bd25359 100644 > --- a/libavformat/hlsenc.c > +++ b/libavformat/hlsenc.c > @@ -23,6 +23,7 @@ > #include "config.h" > #include "config_components.h" > #include <stdint.h> > +#include <time.h> > #if HAVE_UNISTD_H > #include <unistd.h> > #endif > diff --git a/libavformat/hlsplaylist.c b/libavformat/hlsplaylist.c > index 0e1dcc087f..2bf05f3c7c 100644 > --- a/libavformat/hlsplaylist.c > +++ b/libavformat/hlsplaylist.c > @@ -22,6 +22,7 @@ > > #include "config.h" > #include <stdint.h> > +#include <time.h> > > #include "libavutil/time_internal.h" > > diff --git a/libavformat/http.c b/libavformat/http.c > index fd931c2d8e..c0fe7c36d9 100644 > --- a/libavformat/http.c > +++ b/libavformat/http.c > @@ -22,6 +22,7 @@ > #include "config.h" > #include "config_components.h" > > +#include <time.h> > #if CONFIG_ZLIB > #include <zlib.h> > #endif /* CONFIG_ZLIB */ > diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c > index 9b8ec06cea..526a11e5ee 100644 > --- a/libavformat/img2enc.c > +++ b/libavformat/img2enc.c > @@ -20,6 +20,8 @@ > * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 > USA > */ > > +#include <time.h> > + > #include "config_components.h" > > #include "libavutil/intreadwrite.h" > diff --git a/libavformat/internal.h b/libavformat/internal.h > index 53e70ccb53..051e8e2893 100644 > --- a/libavformat/internal.h > +++ b/libavformat/internal.h > @@ -566,8 +566,8 @@ void ff_parse_key_value(const char *str, > ff_parse_key_val_cb callback_get_buf, > > enum AVCodecID ff_guess_image2_codec(const char *filename); > > -const AVCodec *ff_find_decoder(AVFormatContext *s, const AVStream *st, > - enum AVCodecID codec_id); > +const struct AVCodec *ff_find_decoder(AVFormatContext *s, const AVStream *st, > + enum AVCodecID codec_id); > > /** > * Set the time base and wrapping info for a given stream. This will be used > diff --git a/libavformat/mlvdec.c b/libavformat/mlvdec.c > index db3b77bb9b..b706898cb3 100644 > --- a/libavformat/mlvdec.c > +++ b/libavformat/mlvdec.c > @@ -24,6 +24,8 @@ > * Magic Lantern Video (MLV) demuxer > */ > > +#include <time.h> > + > #include "libavutil/imgutils.h" > #include "libavutil/intreadwrite.h" > #include "libavutil/rational.h" > diff --git a/libavformat/mux.c b/libavformat/mux.c > index 415bd3948f..fff8094341 100644 > --- a/libavformat/mux.c > +++ b/libavformat/mux.c > @@ -24,12 +24,14 @@ > #include "mux.h" > #include "version.h" > #include "libavcodec/bsf.h" > +#include "libavcodec/codec_desc.h" > #include "libavcodec/internal.h" > #include "libavcodec/packet_internal.h" > #include "libavutil/opt.h" > #include "libavutil/dict.h" > #include "libavutil/timestamp.h" > #include "libavutil/avassert.h" > +#include "libavutil/frame.h" > #include "libavutil/internal.h" > #include "libavutil/mathematics.h" > > diff --git a/libavformat/mux.h b/libavformat/mux.h > index c2de45400c..9de5c2852a 100644 > --- a/libavformat/mux.h > +++ b/libavformat/mux.h > @@ -96,7 +96,7 @@ typedef struct FFOutputFormat { > * by setting the pointer to NULL. > */ > int (*write_uncoded_frame)(AVFormatContext *, int stream_index, > - AVFrame **frame, unsigned flags); > + struct AVFrame **frame, unsigned flags); > /** > * Returns device list with it properties. > * @see avdevice_list_devices() for more details. > diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c > index 34230ece98..110b69b7c1 100644 > --- a/libavformat/mxfdec.c > +++ b/libavformat/mxfdec.c > @@ -45,6 +45,7 @@ > */ > > #include <inttypes.h> > +#include <time.h> > > #include "libavutil/aes.h" > #include "libavutil/avstring.h" > diff --git a/libavformat/uncodedframecrcenc.c > b/libavformat/uncodedframecrcenc.c > index 4c37ef6e5b..529b2f36cb 100644 > --- a/libavformat/uncodedframecrcenc.c > +++ b/libavformat/uncodedframecrcenc.c > @@ -21,6 +21,7 @@ > #include "libavutil/adler32.h" > #include "libavutil/avassert.h" > #include "libavutil/bprint.h" > +#include "libavutil/frame.h" > #include "libavutil/imgutils.h" > #include "libavutil/pixdesc.h" > #include "libavformat/mux.h" > diff --git a/libavformat/wavenc.c b/libavformat/wavenc.c > index c12c090934..82acb9ef0f 100644 > --- a/libavformat/wavenc.c > +++ b/libavformat/wavenc.c > @@ -32,6 +32,7 @@ > > #include <stdint.h> > #include <string.h> > +#include <time.h> > > #include "libavutil/avstring.h" > #include "libavutil/dict.h" > diff --git a/libavformat/webmdashenc.c b/libavformat/webmdashenc.c > index 0d6c4a2072..31ea3c6e8c 100644 > --- a/libavformat/webmdashenc.c > +++ b/libavformat/webmdashenc.c > @@ -29,6 +29,7 @@ > #include <float.h> > #include <stdint.h> > #include <string.h> > +#include <time.h> > > #include "avformat.h" > #include "matroska.h" > diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c > index 98128b7201..b29ea7a923 100644 > --- a/libavformat/wtvdec.c > +++ b/libavformat/wtvdec.c > @@ -26,6 +26,7 @@ > */ > > #include <inttypes.h> > +#include <time.h> > > #include "libavutil/channel_layout.h" > #include "libavutil/intreadwrite.h" > diff --git a/libavformat/yuv4mpegenc.c b/libavformat/yuv4mpegenc.c > index 968ba2fa13..1d641eb9e4 100644 > --- a/libavformat/yuv4mpegenc.c > +++ b/libavformat/yuv4mpegenc.c > @@ -19,6 +19,7 @@ > * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 > USA > */ > > +#include "libavutil/frame.h" > #include "libavutil/pixdesc.h" > #include "avformat.h" > #include "internal.h"
Will apply this patchset tomorrow unless there are objections. - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".