diff --git a/doc/APIchanges b/doc/APIchanges index d927e5679d..5b91bb4b6e 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -14,6 +14,11 @@ libavutil: 2015-08-28 API changes, most recent first: +2015-11-29 - xxxxxxx - lavc 57.16.101 - 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.16.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 448ba8ae25..5e36c94ee3 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -2607,13 +2607,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 dfc0ba42b9..0442524c22 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -2974,10 +2974,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){ @@ -3453,6 +3457,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; @@ -3461,6 +3467,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 5eecf5b7cd..d1d89a1107 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -30,7 +30,7 @@ #define LIBAVCODEC_VERSION_MAJOR 57 #define LIBAVCODEC_VERSION_MINOR 16 -#define LIBAVCODEC_VERSION_MICRO 100 +#define LIBAVCODEC_VERSION_MICRO 101 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ @@ -194,5 +194,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 */