diff options
Diffstat (limited to 'ext/ffmpeg/gstffmpegcodecmap.c')
-rw-r--r-- | ext/ffmpeg/gstffmpegcodecmap.c | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/ext/ffmpeg/gstffmpegcodecmap.c b/ext/ffmpeg/gstffmpegcodecmap.c index 1495ba2d6d..61d47eb28b 100644 --- a/ext/ffmpeg/gstffmpegcodecmap.c +++ b/ext/ffmpeg/gstffmpegcodecmap.c @@ -1717,8 +1717,13 @@ gst_ffmpeg_formatid_get_codecids (const gchar *format_name, GST_LOG ("format_name : %s", format_name); if (!strcmp (format_name, "mp4")) { - static enum CodecID mp4_video_list[] = { CODEC_ID_MPEG4, CODEC_ID_H264, CODEC_ID_NONE }; - static enum CodecID mp4_audio_list[] = { CODEC_ID_AAC, CODEC_ID_NONE }; + static enum CodecID mp4_video_list[] = { + CODEC_ID_MPEG4, CODEC_ID_H264, CODEC_ID_NONE + }; + static enum CodecID mp4_audio_list[] = { + CODEC_ID_AAC, CODEC_ID_MP3, CODEC_ID_AMR_NB, + CODEC_ID_NONE + }; *video_codec_list = mp4_video_list; *audio_codec_list = mp4_audio_list; @@ -1789,12 +1794,31 @@ gst_ffmpeg_formatid_get_codecids (const gchar *format_name, *video_codec_list = mov_video_list; *audio_codec_list = mov_audio_list; + } else if ((!strcmp (format_name, "3gp") || + !strcmp (format_name, "3g2"))) { + static enum CodecID tgp_video_list[] = { + CODEC_ID_H263, + CODEC_ID_NONE + }; + static enum CodecID tgp_audio_list[] = { + CODEC_ID_AMR_NB, + CODEC_ID_NONE + }; + + *video_codec_list = tgp_video_list; + *audio_codec_list = tgp_audio_list; } else if (!strcmp (format_name, "mmf")) { static enum CodecID mmf_audio_list[] = { CODEC_ID_ADPCM_YAMAHA}; *video_codec_list = NULL; *audio_codec_list = mmf_audio_list; - } else { + } else if (!strcmp (format_name, "amr")) { + static enum CodecID amr_audio_list[] = { + CODEC_ID_AMR_NB, CODEC_ID_AMR_WB, + CODEC_ID_NONE }; + *video_codec_list = NULL; + *audio_codec_list = amr_audio_list; + } else { GST_LOG ("Format %s not found", format_name); return FALSE; } |