Mercurial > libavformat.hg
diff rtpenc.c @ 4796:f48c56ac46c2 libavformat
Make rtp_write_header() fail in case of unsupported payload type
| author | lucabe |
|---|---|
| date | Fri, 27 Mar 2009 21:36:44 +0000 |
| parents | daca5391106a |
| children | 730b214077ca |
line wrap: on
line diff
--- a/rtpenc.c Fri Mar 27 17:06:39 2009 +0000 +++ b/rtpenc.c Fri Mar 27 21:36:44 2009 +0000 @@ -39,6 +39,31 @@ return (av_gettime() / 1000) * 1000 + NTP_OFFSET_US; } +static int is_supported(enum CodecID id) +{ + switch(id) { + case CODEC_ID_H264: + case CODEC_ID_MPEG1VIDEO: + case CODEC_ID_MPEG2VIDEO: + case CODEC_ID_MPEG4: + case CODEC_ID_AAC: + case CODEC_ID_MP2: + case CODEC_ID_MP3: + case CODEC_ID_PCM_ALAW: + case CODEC_ID_PCM_MULAW: + case CODEC_ID_PCM_S8: + case CODEC_ID_PCM_S16BE: + case CODEC_ID_PCM_S16LE: + case CODEC_ID_PCM_U16BE: + case CODEC_ID_PCM_U16LE: + case CODEC_ID_PCM_U8: + case CODEC_ID_MPEG2TS: + return 1; + default: + return 0; + } +} + static int rtp_write_header(AVFormatContext *s1) { RTPMuxContext *s = s1->priv_data; @@ -48,6 +73,11 @@ if (s1->nb_streams != 1) return -1; st = s1->streams[0]; + if (!is_supported(st->codec->codec_id)) { + av_log(s1, AV_LOG_ERROR, "Unsupported codec %x\n", st->codec->codec_id); + + return -1; + } payload_type = ff_rtp_get_payload_type(st->codec); if (payload_type < 0)
