X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=libavformat%2Frtpdec.c;h=a80463b98b4c91813fc9b752d62cbfaa772b7b08;hb=ec96a89c3e507cf0fb1f2b159b28a53f2bad9a74;hp=522d951d357cfe4332a872b34dba3e6dc06f9842;hpb=1ec28a66f2c853a7e4aeb21495c0b4d9478f17db;p=android-x86%2Fexternal-ffmpeg.git diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c index 522d951d35..a80463b98b 100644 --- a/libavformat/rtpdec.c +++ b/libavformat/rtpdec.c @@ -50,6 +50,12 @@ static RTPDynamicProtocolHandler opus_dynamic_handler = { .codec_id = AV_CODEC_ID_OPUS, }; +static RTPDynamicProtocolHandler t140_dynamic_handler = { /* RFC 4103 */ + .enc_name = "t140", + .codec_type = AVMEDIA_TYPE_DATA, + .codec_id = AV_CODEC_ID_TEXT, +}; + static RTPDynamicProtocolHandler *rtp_first_dynamic_payload_handler = NULL; void ff_register_dynamic_payload_handler(RTPDynamicProtocolHandler *handler) @@ -60,8 +66,10 @@ void ff_register_dynamic_payload_handler(RTPDynamicProtocolHandler *handler) void ff_register_rtp_dynamic_payload_handlers(void) { + ff_register_dynamic_payload_handler(&ff_ac3_dynamic_handler); ff_register_dynamic_payload_handler(&ff_amr_nb_dynamic_handler); ff_register_dynamic_payload_handler(&ff_amr_wb_dynamic_handler); + ff_register_dynamic_payload_handler(&ff_dv_dynamic_handler); ff_register_dynamic_payload_handler(&ff_g726_16_dynamic_handler); ff_register_dynamic_payload_handler(&ff_g726_24_dynamic_handler); ff_register_dynamic_payload_handler(&ff_g726_32_dynamic_handler); @@ -77,6 +85,7 @@ void ff_register_rtp_dynamic_payload_handlers(void) ff_register_dynamic_payload_handler(&ff_mp4a_latm_dynamic_handler); ff_register_dynamic_payload_handler(&ff_mp4v_es_dynamic_handler); ff_register_dynamic_payload_handler(&ff_mpeg_audio_dynamic_handler); + ff_register_dynamic_payload_handler(&ff_mpeg_audio_robust_dynamic_handler); ff_register_dynamic_payload_handler(&ff_mpeg_video_dynamic_handler); ff_register_dynamic_payload_handler(&ff_mpeg4_generic_dynamic_handler); ff_register_dynamic_payload_handler(&ff_mpegts_dynamic_handler); @@ -95,6 +104,7 @@ void ff_register_rtp_dynamic_payload_handlers(void) ff_register_dynamic_payload_handler(&opus_dynamic_handler); ff_register_dynamic_payload_handler(&realmedia_mp3_dynamic_handler); ff_register_dynamic_payload_handler(&speex_dynamic_handler); + ff_register_dynamic_payload_handler(&t140_dynamic_handler); } RTPDynamicProtocolHandler *ff_rtp_handler_find_by_name(const char *name, @@ -103,7 +113,8 @@ RTPDynamicProtocolHandler *ff_rtp_handler_find_by_name(const char *name, RTPDynamicProtocolHandler *handler; for (handler = rtp_first_dynamic_payload_handler; handler; handler = handler->next) - if (!av_strcasecmp(name, handler->enc_name) && + if (handler->enc_name && + !av_strcasecmp(name, handler->enc_name) && codec_type == handler->codec_type) return handler; return NULL; @@ -833,7 +844,7 @@ int ff_parse_fmtp(AVFormatContext *s, int (*parse_fmtp)(AVFormatContext *s, AVStream *stream, PayloadContext *data, - char *attr, char *value)) + const char *attr, const char *value)) { char attr[256]; char *value;