X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Frtpdec_amr.c;h=b6a8c29052c2f792f78c368ea5d58756e347ca05;hb=abdc7e403e003e97a0dcc4499ac319bf854aeead;hp=897873b63f8dfa0e4c5a3fe5c7711e34204a72a8;hpb=5d8cae45737bed6239bd6b6e0698802dbe1463c8;p=ffmpeg diff --git a/libavformat/rtpdec_amr.c b/libavformat/rtpdec_amr.c index 897873b63f8..b6a8c29052c 100644 --- a/libavformat/rtpdec_amr.c +++ b/libavformat/rtpdec_amr.c @@ -38,13 +38,10 @@ struct PayloadContext { int channels; }; -static PayloadContext *amr_new_context(void) +static av_cold int amr_init(AVFormatContext *s, int st_index, PayloadContext *data) { - PayloadContext *data = av_mallocz(sizeof(PayloadContext)); - if (!data) - return data; data->channels = 1; - return data; + return 0; } static int amr_handle_packet(AVFormatContext *ctx, PayloadContext *data, @@ -137,7 +134,7 @@ static int amr_handle_packet(AVFormatContext *ctx, PayloadContext *data, static int amr_parse_fmtp(AVFormatContext *s, AVStream *stream, PayloadContext *data, - char *attr, char *value) + const char *attr, const char *value) { /* Some AMR SDP configurations contain "octet-align", without * the trailing =1. Therefore, if the value is empty, @@ -146,7 +143,7 @@ static int amr_parse_fmtp(AVFormatContext *s, if (!strcmp(value, "")) { av_log(s, AV_LOG_WARNING, "AMR fmtp attribute %s had " "nonstandard empty value\n", attr); - strcpy(value, "1"); + value = "1"; } if (!strcmp(attr, "octet-align")) data->octet_align = atoi(value); @@ -189,8 +186,9 @@ RTPDynamicProtocolHandler ff_amr_nb_dynamic_handler = { .enc_name = "AMR", .codec_type = AVMEDIA_TYPE_AUDIO, .codec_id = AV_CODEC_ID_AMR_NB, + .priv_data_size = sizeof(PayloadContext), + .init = amr_init, .parse_sdp_a_line = amr_parse_sdp_line, - .alloc = amr_new_context, .parse_packet = amr_handle_packet, }; @@ -198,7 +196,8 @@ RTPDynamicProtocolHandler ff_amr_wb_dynamic_handler = { .enc_name = "AMR-WB", .codec_type = AVMEDIA_TYPE_AUDIO, .codec_id = AV_CODEC_ID_AMR_WB, + .priv_data_size = sizeof(PayloadContext), + .init = amr_init, .parse_sdp_a_line = amr_parse_sdp_line, - .alloc = amr_new_context, .parse_packet = amr_handle_packet, };