diff --git a/doc/APIchanges b/doc/APIchanges index fbabb51ea3..ecbe8b537c 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -13,6 +13,11 @@ libavutil: 2015-08-28 API changes, most recent first: +2015-xx-xx - xxxxxxx - lavc 57.9.1 - avcodec.h + Deprecate rtp_callback without replacement, i.e. it won't be possible to + get image slices before the full frame is encoded any more. The libavformat + rtpenc muxer can still be used for RFC-2190 packetization. + 2015-11-xx - xxxxxxx - lavc 57.9.0 - avcodec.h Add AV_PKT_DATA_FALLBACK_TRACK for making fallback associations between streams. diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 57dce366ce..e888952d4d 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -2372,13 +2372,19 @@ typedef struct AVCodecContext { */ int64_t timecode_frame_start; +#if FF_API_RTP_CALLBACK + /** + * @deprecated unused + */ /* The RTP callback: This function is called */ /* every time the encoder has a packet to send. */ /* It depends on the encoder if the data starts */ /* with a Start Code (it should). H.263 does. */ /* mb_nb contains the number of macroblocks */ /* encoded in the RTP payload. */ + attribute_deprecated void (*rtp_callback)(struct AVCodecContext *avctx, void *data, int size, int mb_nb); +#endif int rtp_payload_size; /* The size of the RTP payload: the coder will */ /* do its best to deliver a chunk with size */ diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index b9157412de..b76d0ad25a 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -2720,10 +2720,14 @@ static int encode_thread(AVCodecContext *c, void *arg){ } } +#if FF_API_RTP_CALLBACK +FF_DISABLE_DEPRECATION_WARNINGS if (s->avctx->rtp_callback){ int number_mb = (mb_y - s->resync_mb_y)*s->mb_width + mb_x - s->resync_mb_x; s->avctx->rtp_callback(s->avctx, s->ptr_lastgob, current_packet_size, number_mb); } +FF_ENABLE_DEPRECATION_WARNINGS +#endif update_mb_info(s, 1); switch(s->codec_id){ @@ -3198,6 +3202,8 @@ static int encode_thread(AVCodecContext *c, void *arg){ write_slice_end(s); +#if FF_API_RTP_CALLBACK +FF_DISABLE_DEPRECATION_WARNINGS /* Send the last GOB if RTP */ if (s->avctx->rtp_callback) { int number_mb = (mb_y - s->resync_mb_y)*s->mb_width - s->resync_mb_x; @@ -3206,6 +3212,8 @@ static int encode_thread(AVCodecContext *c, void *arg){ emms_c(); s->avctx->rtp_callback(s->avctx, s->ptr_lastgob, pdif, number_mb); } +FF_ENABLE_DEPRECATION_WARNINGS +#endif return 0; } diff --git a/libavcodec/version.h b/libavcodec/version.h index 5776670d36..f31a93d8f1 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -30,7 +30,7 @@ #define LIBAVCODEC_VERSION_MAJOR 57 #define LIBAVCODEC_VERSION_MINOR 9 -#define LIBAVCODEC_VERSION_MICRO 0 +#define LIBAVCODEC_VERSION_MICRO 1 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ @@ -177,5 +177,8 @@ #ifndef FF_API_AVPACKET_OLD_API #define FF_API_AVPACKET_OLD_API (LIBAVCODEC_VERSION_MAJOR < 59) #endif +#ifndef FF_API_RTP_CALLBACK +#define FF_API_RTP_CALLBACK (LIBAVCODEC_VERSION_MAJOR < 59) +#endif #endif /* AVCODEC_VERSION_H */