Mercurial > libavcodec.hg
comparison utils.c @ 8098:c2ab7a8958ed libavcodec
Add audio channel layout API to libavcodec.
author | pross |
---|---|
date | Sat, 01 Nov 2008 05:03:42 +0000 |
parents | e70975d5ff80 |
children | f5298dd1e61c |
comparison
equal
deleted
inserted
replaced
8097:7818ed859f66 | 8098:c2ab7a8958ed |
---|---|
738 {"non_linear_q", "use non linear quantizer", 0, FF_OPT_TYPE_CONST, CODEC_FLAG2_NON_LINEAR_QUANT, INT_MIN, INT_MAX, V|E, "flags2"}, | 738 {"non_linear_q", "use non linear quantizer", 0, FF_OPT_TYPE_CONST, CODEC_FLAG2_NON_LINEAR_QUANT, INT_MIN, INT_MAX, V|E, "flags2"}, |
739 {"request_channels", "set desired number of audio channels", OFFSET(request_channels), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, A|D}, | 739 {"request_channels", "set desired number of audio channels", OFFSET(request_channels), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, A|D}, |
740 {"drc_scale", "percentage of dynamic range compression to apply", OFFSET(drc_scale), FF_OPT_TYPE_FLOAT, 1.0, 0.0, 1.0, A|D}, | 740 {"drc_scale", "percentage of dynamic range compression to apply", OFFSET(drc_scale), FF_OPT_TYPE_FLOAT, 1.0, 0.0, 1.0, A|D}, |
741 {"reservoir", "use bit reservoir", 0, FF_OPT_TYPE_CONST, CODEC_FLAG2_BIT_RESERVOIR, INT_MIN, INT_MAX, A|E, "flags2"}, | 741 {"reservoir", "use bit reservoir", 0, FF_OPT_TYPE_CONST, CODEC_FLAG2_BIT_RESERVOIR, INT_MIN, INT_MAX, A|E, "flags2"}, |
742 {"bits_per_raw_sample", NULL, OFFSET(bits_per_raw_sample), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX}, | 742 {"bits_per_raw_sample", NULL, OFFSET(bits_per_raw_sample), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX}, |
743 {"channel_layout", NULL, OFFSET(channel_layout), FF_OPT_TYPE_INT64, DEFAULT, 0, INT64_MAX, A|E|D, "channel_layout"}, | |
744 {"request_channel_layout", NULL, OFFSET(request_channel_layout), FF_OPT_TYPE_INT64, DEFAULT, 0, INT64_MAX, A|D, "request_channel_layout"}, | |
743 {NULL}, | 745 {NULL}, |
744 }; | 746 }; |
745 | 747 |
746 #undef A | 748 #undef A |
747 #undef V | 749 #undef V |
1049 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) | 1051 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) |
1050 { | 1052 { |
1051 const char *codec_name; | 1053 const char *codec_name; |
1052 AVCodec *p; | 1054 AVCodec *p; |
1053 char buf1[32]; | 1055 char buf1[32]; |
1054 char channels_str[100]; | |
1055 int bitrate; | 1056 int bitrate; |
1056 AVRational display_aspect_ratio; | 1057 AVRational display_aspect_ratio; |
1057 | 1058 |
1058 if (encode) | 1059 if (encode) |
1059 p = avcodec_find_encoder(enc->codec_id); | 1060 p = avcodec_find_encoder(enc->codec_id); |
1129 break; | 1130 break; |
1130 case CODEC_TYPE_AUDIO: | 1131 case CODEC_TYPE_AUDIO: |
1131 snprintf(buf, buf_size, | 1132 snprintf(buf, buf_size, |
1132 "Audio: %s", | 1133 "Audio: %s", |
1133 codec_name); | 1134 codec_name); |
1134 switch (enc->channels) { | |
1135 case 1: | |
1136 strcpy(channels_str, "mono"); | |
1137 break; | |
1138 case 2: | |
1139 strcpy(channels_str, "stereo"); | |
1140 break; | |
1141 case 6: | |
1142 strcpy(channels_str, "5:1"); | |
1143 break; | |
1144 default: | |
1145 snprintf(channels_str, sizeof(channels_str), "%d channels", enc->channels); | |
1146 break; | |
1147 } | |
1148 if (enc->sample_rate) { | 1135 if (enc->sample_rate) { |
1149 snprintf(buf + strlen(buf), buf_size - strlen(buf), | 1136 snprintf(buf + strlen(buf), buf_size - strlen(buf), |
1150 ", %d Hz, %s", | 1137 ", %d Hz", enc->sample_rate); |
1151 enc->sample_rate, | 1138 } |
1152 channels_str); | 1139 av_strlcat(buf, ", ", buf_size); |
1153 } | 1140 avcodec_get_channel_layout_string(buf + strlen(buf), buf_size - strlen(buf), enc->channels, enc->channel_layout); |
1154 if (enc->sample_fmt != SAMPLE_FMT_NONE) { | 1141 if (enc->sample_fmt != SAMPLE_FMT_NONE) { |
1155 snprintf(buf + strlen(buf), buf_size - strlen(buf), | 1142 snprintf(buf + strlen(buf), buf_size - strlen(buf), |
1156 ", %s", avcodec_get_sample_fmt_name(enc->sample_fmt)); | 1143 ", %s", avcodec_get_sample_fmt_name(enc->sample_fmt)); |
1157 } | 1144 } |
1158 | 1145 |