{
RET_VAL_IF(codec_name == NULL, NULL, "codec_name is NULL");
+ if (!strcmp(codec_name, "pcmu") || !strcmp(codec_name, "PCMU"))
+ return MEDIA_TYPE_AUDIO_MULAW;
+ if (!strcmp(codec_name, "pcma") || !strcmp(codec_name, "PCMA"))
+ return MEDIA_TYPE_AUDIO_ALAW;
if (!strcmp(codec_name, "opus") || !strcmp(codec_name, "OPUS"))
return MEDIA_TYPE_AUDIO_OPUS;
- else if (!strcmp(codec_name, "vorbis") || !strcmp(codec_name, "VORBIS"))
+ if (!strcmp(codec_name, "vorbis") || !strcmp(codec_name, "VORBIS"))
return MEDIA_TYPE_AUDIO_VORBIS;
LOG_ERROR("not supported audio codec_name[%s]", codec_name);
if (!strcmp(codec_name, "vp8") || !strcmp(codec_name, "VP8"))
return MEDIA_TYPE_VIDEO_VP8;
- else if (!strcmp(codec_name, "vp9") || !strcmp(codec_name, "VP9"))
+ if (!strcmp(codec_name, "vp9") || !strcmp(codec_name, "VP9"))
return MEDIA_TYPE_VIDEO_VP9;
- else if (!strcmp(codec_name, "theora") || !strcmp(codec_name, "THEORA"))
+ if (!strcmp(codec_name, "theora") || !strcmp(codec_name, "THEORA"))
return MEDIA_TYPE_VIDEO_THEORA;
- else if (!strcmp(codec_name, "h264") || !strcmp(codec_name, "H264"))
+ if (!strcmp(codec_name, "h264") || !strcmp(codec_name, "H264"))
return MEDIA_TYPE_VIDEO_H264;
- else if (!strcmp(codec_name, "h265") || !strcmp(codec_name, "H265"))
+ if (!strcmp(codec_name, "h265") || !strcmp(codec_name, "H265"))
return MEDIA_TYPE_VIDEO_H265;
- else if (!strcmp(codec_name, "jpeg") || !strcmp(codec_name, "JPEG") || !strcmp(codec_name, "mjpeg") || !strcmp(codec_name, "MJPEG"))
+ if (!strcmp(codec_name, "jpeg") || !strcmp(codec_name, "JPEG") || !strcmp(codec_name, "mjpeg") || !strcmp(codec_name, "MJPEG"))
return MEDIA_TYPE_VIDEO_JPEG;
LOG_ERROR("not supported video codec_name[%s]", codec_name);
case MEDIA_FORMAT_PCM_S16LE:
return "S16LE";
/* ENCODED formats */
+ case MEDIA_FORMAT_PCMU:
+ return "PCMU";
+ case MEDIA_FORMAT_PCMA:
+ return "PCMA";
case MEDIA_FORMAT_OPUS:
return "OPUS";
case MEDIA_FORMAT_VORBIS:
LOG_INFO("[VIDEO][RAW/%s] mime_type[0x%x]", __get_video_format_name(mime_type, false), mime_type);
return true;
/* AUDIO/ENCODED formats */
+ case MEDIA_FORMAT_PCMU:
+ case MEDIA_FORMAT_PCMA:
case MEDIA_FORMAT_OPUS:
case MEDIA_FORMAT_VORBIS:
LOG_INFO("[AUDIO][ENCODED/%s] mime_type[0x%x]", __get_audio_format_name(mime_type), mime_type);
{
RET_VAL_IF(media_type == NULL, NULL, "media_type is NULL");
+ if (!strcmp(media_type, MEDIA_TYPE_AUDIO_MULAW) ||
+ !strcmp(media_type, MEDIA_TYPE_AUDIO_ALAW))
+ return gst_caps_new_simple(media_type,
+ "rate", G_TYPE_INT, samplerate,
+ "channels", G_TYPE_INT, channels,
+ NULL);
+
if (!strcmp(media_type, MEDIA_TYPE_AUDIO_OPUS) ||
!strcmp(media_type, MEDIA_TYPE_AUDIO_VORBIS))
return gst_caps_new_simple(media_type, NULL, NULL);
media_format_ref(format);
source->media_format = format;
- if (mime_type & MEDIA_FORMAT_RAW)
+ if ((mime_type & MEDIA_FORMAT_RAW) &&
+ !(mime_type == MEDIA_FORMAT_PCMU || mime_type == MEDIA_FORMAT_PCMA)) /* FIXME: media_format.h defined PCMU/PCMA as a raw format, it's a bug. */
ret = __complete_mediapacketsrc_from_raw_format(webrtc, source);
else
ret = __complete_mediapacketsrc_from_encoded_format(webrtc, source);