rtsp里面的音频类型,大部分都默认规定了样本大小的。

从src/audio_output/common.c里面的函数aout_BitsPerSample可知,rtsp里面的音频类型,大部分都默认规定了样本bit大小的。即是,一个音频编码类型,对应一个固定的样本bit大小。所以rtsp里面,服务器只是告诉客户端,音频编码类型为pcma,而没有告诉客户端pcma编码的样本bit大小,因为这个是固定的。

如下代码里,pcma即是VLC_CODEC_ALAW,对应的返回值为8,即8bit为样本大小。
pcmu则是VLC_CODEC_MULAW,对应的返回值也是8,即8bit样本大小。

/*****************************************************************************
 * aout_BitsPerSample : get the number of bits per sample
 *****************************************************************************/
unsigned int aout_BitsPerSample( vlc_fourcc_t i_format )
{
    switch( vlc_fourcc_GetCodec( AUDIO_ES, i_format ) )
    {
    case VLC_CODEC_U8:
    case VLC_CODEC_S8:
    case VLC_CODEC_ALAW:
    case VLC_CODEC_MULAW:
        ;

    case VLC_CODEC_U16L:
    case VLC_CODEC_S16L:
    case VLC_CODEC_U16B:
    case VLC_CODEC_S16B:
        ;

    case VLC_CODEC_U24L:
    case VLC_CODEC_S24L:
    case VLC_CODEC_U24B:
    case VLC_CODEC_S24B:
        ;

    case VLC_CODEC_S24L32:
    case VLC_CODEC_S24B32:
    case VLC_CODEC_U32L:
    case VLC_CODEC_U32B:
    case VLC_CODEC_S32L:
    case VLC_CODEC_S32B:
    case VLC_CODEC_F32L:
    case VLC_CODEC_F32B:
        ;

    case VLC_CODEC_F64L:
    case VLC_CODEC_F64B:
        ;

    default:
        /* For these formats the caller has to indicate the parameters
         * by hand. */
        ;
    }
}

上面代码还没有来源感,来张vlc代码截图吧:

rtsp里面的音频类型,大部分都默认规定了样本大小的。

完。

上一篇:C# Winform控件对透明图片重叠时导致图片不透明的解决方法(转)


下一篇:C++文件操作之 seekg/seekp/tellg/tellp