Commit 71a861cf authored by Anton Khirnov's avatar Anton Khirnov

lavc: make avcodec_alloc_context3 officially public.

Deprecate avcodec_alloc_context/2.
parent 18c007ba
...@@ -63,7 +63,7 @@ void init_opts(void) ...@@ -63,7 +63,7 @@ void init_opts(void)
{ {
int i; int i;
for (i = 0; i < AVMEDIA_TYPE_NB; i++) for (i = 0; i < AVMEDIA_TYPE_NB; i++)
avcodec_opts[i] = avcodec_alloc_context2(i); avcodec_opts[i] = avcodec_alloc_context3(NULL);
avformat_opts = avformat_alloc_context(); avformat_opts = avformat_alloc_context();
#if CONFIG_SWSCALE #if CONFIG_SWSCALE
sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC, NULL, NULL, NULL); sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC, NULL, NULL, NULL);
......
...@@ -3468,7 +3468,7 @@ static AVStream *add_av_stream1(FFStream *stream, AVCodecContext *codec, int cop ...@@ -3468,7 +3468,7 @@ static AVStream *add_av_stream1(FFStream *stream, AVCodecContext *codec, int cop
if (!fst) if (!fst)
return NULL; return NULL;
if (copy) { if (copy) {
fst->codec= avcodec_alloc_context(); fst->codec = avcodec_alloc_context3(NULL);
memcpy(fst->codec, codec, sizeof(AVCodecContext)); memcpy(fst->codec, codec, sizeof(AVCodecContext));
if (codec->extradata_size) { if (codec->extradata_size) {
fst->codec->extradata = av_malloc(codec->extradata_size); fst->codec->extradata = av_malloc(codec->extradata_size);
...@@ -3885,7 +3885,7 @@ static void add_codec(FFStream *stream, AVCodecContext *av) ...@@ -3885,7 +3885,7 @@ static void add_codec(FFStream *stream, AVCodecContext *av)
st = av_mallocz(sizeof(AVStream)); st = av_mallocz(sizeof(AVStream));
if (!st) if (!st)
return; return;
st->codec = avcodec_alloc_context(); st->codec = avcodec_alloc_context3(NULL);
stream->streams[stream->nb_streams++] = st; stream->streams[stream->nb_streams++] = st;
memcpy(st->codec, av, sizeof(AVCodecContext)); memcpy(st->codec, av, sizeof(AVCodecContext));
} }
......
...@@ -65,7 +65,7 @@ static void audio_encode_example(const char *filename) ...@@ -65,7 +65,7 @@ static void audio_encode_example(const char *filename)
exit(1); exit(1);
} }
c= avcodec_alloc_context(); c = avcodec_alloc_context3(codec);
/* put sample parameters */ /* put sample parameters */
c->bit_rate = 64000; c->bit_rate = 64000;
...@@ -135,7 +135,7 @@ static void audio_decode_example(const char *outfilename, const char *filename) ...@@ -135,7 +135,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
exit(1); exit(1);
} }
c= avcodec_alloc_context(); c = avcodec_alloc_context3(codec);
/* open it */ /* open it */
if (avcodec_open(c, codec) < 0) { if (avcodec_open(c, codec) < 0) {
...@@ -216,7 +216,7 @@ static void video_encode_example(const char *filename) ...@@ -216,7 +216,7 @@ static void video_encode_example(const char *filename)
exit(1); exit(1);
} }
c= avcodec_alloc_context(); c = avcodec_alloc_context3(codec);
picture= avcodec_alloc_frame(); picture= avcodec_alloc_frame();
/* put sample parameters */ /* put sample parameters */
...@@ -347,7 +347,7 @@ static void video_decode_example(const char *outfilename, const char *filename) ...@@ -347,7 +347,7 @@ static void video_decode_example(const char *outfilename, const char *filename)
exit(1); exit(1);
} }
c= avcodec_alloc_context(); c = avcodec_alloc_context3(codec);
picture= avcodec_alloc_frame(); picture= avcodec_alloc_frame();
if(codec->capabilities&CODEC_CAP_TRUNCATED) if(codec->capabilities&CODEC_CAP_TRUNCATED)
......
...@@ -3529,21 +3529,38 @@ void avcodec_get_context_defaults2(AVCodecContext *s, enum AVMediaType); ...@@ -3529,21 +3529,38 @@ void avcodec_get_context_defaults2(AVCodecContext *s, enum AVMediaType);
* we WILL change its arguments and name a few times! */ * we WILL change its arguments and name a few times! */
int avcodec_get_context_defaults3(AVCodecContext *s, AVCodec *codec); int avcodec_get_context_defaults3(AVCodecContext *s, AVCodec *codec);
#if FF_API_ALLOC_CONTEXT
/** /**
* Allocate an AVCodecContext and set its fields to default values. The * Allocate an AVCodecContext and set its fields to default values. The
* resulting struct can be deallocated by simply calling av_free(). * resulting struct can be deallocated by simply calling av_free().
* *
* @return An AVCodecContext filled with default values or NULL on failure. * @return An AVCodecContext filled with default values or NULL on failure.
* @see avcodec_get_context_defaults * @see avcodec_get_context_defaults
*
* @deprecated use avcodec_alloc_context3()
*/ */
attribute_deprecated
AVCodecContext *avcodec_alloc_context(void); AVCodecContext *avcodec_alloc_context(void);
/** THIS FUNCTION IS NOT YET PART OF THE PUBLIC API! /** THIS FUNCTION IS NOT YET PART OF THE PUBLIC API!
* we WILL change its arguments and name a few times! */ * we WILL change its arguments and name a few times! */
attribute_deprecated
AVCodecContext *avcodec_alloc_context2(enum AVMediaType); AVCodecContext *avcodec_alloc_context2(enum AVMediaType);
#endif
/** THIS FUNCTION IS NOT YET PART OF THE PUBLIC API! /**
* we WILL change its arguments and name a few times! */ * Allocate an AVCodecContext and set its fields to default values. The
* resulting struct can be deallocated by simply calling av_free().
*
* @param codec if non-NULL, allocate private data and initialize defaults
* for the given codec. It is illegal to then call avcodec_open()
* with a different codec.
*
* @return An AVCodecContext filled with default values or NULL on failure.
* @see avcodec_get_context_defaults
*
* @deprecated use avcodec_alloc_context3()
*/
AVCodecContext *avcodec_alloc_context3(AVCodec *codec); AVCodecContext *avcodec_alloc_context3(AVCodec *codec);
/** /**
...@@ -3553,7 +3570,7 @@ AVCodecContext *avcodec_alloc_context3(AVCodec *codec); ...@@ -3553,7 +3570,7 @@ AVCodecContext *avcodec_alloc_context3(AVCodec *codec);
* can use this AVCodecContext to decode/encode video/audio data. * can use this AVCodecContext to decode/encode video/audio data.
* *
* @param dest target codec context, should be initialized with * @param dest target codec context, should be initialized with
* avcodec_alloc_context(), but otherwise uninitialized * avcodec_alloc_context3(), but otherwise uninitialized
* @param src source codec context * @param src source codec context
* @return AVERROR() on error (e.g. memory allocation error), 0 on success * @return AVERROR() on error (e.g. memory allocation error), 0 on success
*/ */
...@@ -3640,7 +3657,7 @@ int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, ...@@ -3640,7 +3657,7 @@ int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2,
* if (!codec) * if (!codec)
* exit(1); * exit(1);
* *
* context = avcodec_alloc_context(); * context = avcodec_alloc_context3(codec);
* *
* if (avcodec_open(context, codec) < 0) * if (avcodec_open(context, codec) < 0)
* exit(1); * exit(1);
...@@ -3649,7 +3666,7 @@ int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, ...@@ -3649,7 +3666,7 @@ int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2,
* @param avctx The context which will be set up to use the given codec. * @param avctx The context which will be set up to use the given codec.
* @param codec The codec to use within the context. * @param codec The codec to use within the context.
* @return zero on success, a negative value on error * @return zero on success, a negative value on error
* @see avcodec_alloc_context, avcodec_find_decoder, avcodec_find_encoder, avcodec_close * @see avcodec_alloc_context3, avcodec_find_decoder, avcodec_find_encoder, avcodec_close
* *
* @deprecated use avcodec_open2 * @deprecated use avcodec_open2
*/ */
......
...@@ -144,7 +144,7 @@ int main(int argc, char **argv) ...@@ -144,7 +144,7 @@ int main(int argc, char **argv)
printf("ffmpeg motion test\n"); printf("ffmpeg motion test\n");
ctx = avcodec_alloc_context(); ctx = avcodec_alloc_context3(NULL);
ctx->dsp_mask = AV_CPU_FLAG_FORCE; ctx->dsp_mask = AV_CPU_FLAG_FORCE;
dsputil_init(&cctx, ctx); dsputil_init(&cctx, ctx);
for (c = 0; c < flags_size; c++) { for (c = 0; c < flags_size; c++) {
......
...@@ -944,7 +944,7 @@ static int skip_check(MpegEncContext *s, Picture *p, Picture *ref){ ...@@ -944,7 +944,7 @@ static int skip_check(MpegEncContext *s, Picture *p, Picture *ref){
static int estimate_best_b_count(MpegEncContext *s){ static int estimate_best_b_count(MpegEncContext *s){
AVCodec *codec= avcodec_find_encoder(s->avctx->codec_id); AVCodec *codec= avcodec_find_encoder(s->avctx->codec_id);
AVCodecContext *c= avcodec_alloc_context(); AVCodecContext *c = avcodec_alloc_context3(NULL);
AVFrame input[FF_MAX_B_FRAMES+2]; AVFrame input[FF_MAX_B_FRAMES+2];
const int scale= s->avctx->brd_scale; const int scale= s->avctx->brd_scale;
int i, j, out_size, p_lambda, b_lambda, lambda2; int i, j, out_size, p_lambda, b_lambda, lambda2;
......
...@@ -540,6 +540,7 @@ AVCodecContext *avcodec_alloc_context3(AVCodec *codec){ ...@@ -540,6 +540,7 @@ AVCodecContext *avcodec_alloc_context3(AVCodec *codec){
return avctx; return avctx;
} }
#if FF_API_ALLOC_CONTEXT
AVCodecContext *avcodec_alloc_context2(enum AVMediaType codec_type){ AVCodecContext *avcodec_alloc_context2(enum AVMediaType codec_type){
AVCodecContext *avctx= av_malloc(sizeof(AVCodecContext)); AVCodecContext *avctx= av_malloc(sizeof(AVCodecContext));
...@@ -549,14 +550,17 @@ AVCodecContext *avcodec_alloc_context2(enum AVMediaType codec_type){ ...@@ -549,14 +550,17 @@ AVCodecContext *avcodec_alloc_context2(enum AVMediaType codec_type){
return avctx; return avctx;
} }
#endif
void avcodec_get_context_defaults(AVCodecContext *s){ void avcodec_get_context_defaults(AVCodecContext *s){
avcodec_get_context_defaults2(s, AVMEDIA_TYPE_UNKNOWN); avcodec_get_context_defaults2(s, AVMEDIA_TYPE_UNKNOWN);
} }
#if FF_API_ALLOC_CONTEXT
AVCodecContext *avcodec_alloc_context(void){ AVCodecContext *avcodec_alloc_context(void){
return avcodec_alloc_context2(AVMEDIA_TYPE_UNKNOWN); return avcodec_alloc_context2(AVMEDIA_TYPE_UNKNOWN);
} }
#endif
int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src) int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src)
{ {
......
...@@ -68,6 +68,9 @@ ...@@ -68,6 +68,9 @@
#ifndef FF_API_GET_PIX_FMT_NAME #ifndef FF_API_GET_PIX_FMT_NAME
#define FF_API_GET_PIX_FMT_NAME (LIBAVCODEC_VERSION_MAJOR < 54) #define FF_API_GET_PIX_FMT_NAME (LIBAVCODEC_VERSION_MAJOR < 54)
#endif #endif
#ifndef FF_API_ALLOC_CONTEXT
#define FF_API_ALLOC_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 54)
#endif
#ifndef FF_API_AVCODEC_OPEN #ifndef FF_API_AVCODEC_OPEN
#define FF_API_AVCODEC_OPEN (LIBAVCODEC_VERSION_MAJOR < 54) #define FF_API_AVCODEC_OPEN (LIBAVCODEC_VERSION_MAJOR < 54)
#endif #endif
......
...@@ -2102,7 +2102,7 @@ static void mov_create_chapter_track(AVFormatContext *s, int tracknum) ...@@ -2102,7 +2102,7 @@ static void mov_create_chapter_track(AVFormatContext *s, int tracknum)
track->mode = mov->mode; track->mode = mov->mode;
track->tag = MKTAG('t','e','x','t'); track->tag = MKTAG('t','e','x','t');
track->timescale = MOV_TIMESCALE; track->timescale = MOV_TIMESCALE;
track->enc = avcodec_alloc_context(); track->enc = avcodec_alloc_context3(NULL);
track->enc->codec_type = AVMEDIA_TYPE_SUBTITLE; track->enc->codec_type = AVMEDIA_TYPE_SUBTITLE;
for (i = 0; i < s->nb_chapters; i++) { for (i = 0; i < s->nb_chapters; i++) {
......
...@@ -36,7 +36,7 @@ int ff_mov_init_hinting(AVFormatContext *s, int index, int src_index) ...@@ -36,7 +36,7 @@ int ff_mov_init_hinting(AVFormatContext *s, int index, int src_index)
track->tag = MKTAG('r','t','p',' '); track->tag = MKTAG('r','t','p',' ');
track->src_track = src_index; track->src_track = src_index;
track->enc = avcodec_alloc_context(); track->enc = avcodec_alloc_context3(NULL);
if (!track->enc) if (!track->enc)
goto fail; goto fail;
track->enc->codec_type = AVMEDIA_TYPE_DATA; track->enc->codec_type = AVMEDIA_TYPE_DATA;
......
...@@ -2668,7 +2668,7 @@ AVStream *av_new_stream(AVFormatContext *s, int id) ...@@ -2668,7 +2668,7 @@ AVStream *av_new_stream(AVFormatContext *s, int id)
return NULL; return NULL;
} }
st->codec= avcodec_alloc_context(); st->codec = avcodec_alloc_context3(NULL);
if (s->iformat) { if (s->iformat) {
/* no default bitrate if decoding */ /* no default bitrate if decoding */
st->codec->bit_rate = 0; st->codec->bit_rate = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment