Commit 7eb40d85 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit 'ef1b23ad'

* commit 'ef1b23ad': (21 commits)
  jvdec: set channel layout
  iss: set channel layout
  ipmovie: set channel layout
  iff: set channel layout
  idroqdec: set channel layout
  gxfdec: set channel layout when applicable
  gsmdec: set channel layout
  flvdec: set channel layout
  dv: set channel layout
  dsicin: set channel layout
  daud: set channel layout
  cdxl: set channel layout
  bmv: set channel layout
  bink: set channel layout
  bfi: set channel layout
  bethsoftvid: set channel layout
  apc: set channel layout
  amr: set channel_layout
  ppc: replace pointer casting with AV_COPY32
  ppc: fix some unused variable warnings
  ...

Conflicts:
	libavformat/amr.c
	libavformat/iff.c
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents a8f2420e ef1b23ad
...@@ -638,11 +638,10 @@ print_config(){ ...@@ -638,11 +638,10 @@ print_config(){
} }
print_enabled(){ print_enabled(){
test x"$1" = x-n && end=" " && shift || end="\n"
suf=$1 suf=$1
shift shift
for v; do for v; do
enabled $v && printf "%s$end" ${v%$suf}; enabled $v && printf "%s\n" ${v%$suf};
done done
} }
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
*/ */
#include "libavutil/cpu.h" #include "libavutil/cpu.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/ppc/types_altivec.h" #include "libavutil/ppc/types_altivec.h"
#include "libavutil/ppc/util_altivec.h" #include "libavutil/ppc/util_altivec.h"
#include "libavcodec/dsputil.h" #include "libavcodec/dsputil.h"
...@@ -788,7 +789,7 @@ static inline vec_u8 h264_deblock_q1(register vec_u8 p0, ...@@ -788,7 +789,7 @@ static inline vec_u8 h264_deblock_q1(register vec_u8 p0,
alphavec = vec_splat(alphavec, 0x0); \ alphavec = vec_splat(alphavec, 0x0); \
mask = h264_deblock_mask(p0, p1, q0, q1, alphavec, betavec); /*if in block */ \ mask = h264_deblock_mask(p0, p1, q0, q1, alphavec, betavec); /*if in block */ \
\ \
*((int *)temp) = *((int *)tc0); \ AV_COPY32(temp, tc0); \
tc0vec = vec_ld(0, (signed char*)temp); \ tc0vec = vec_ld(0, (signed char*)temp); \
tc0vec = vec_mergeh(tc0vec, tc0vec); \ tc0vec = vec_mergeh(tc0vec, tc0vec); \
tc0vec = vec_mergeh(tc0vec, tc0vec); \ tc0vec = vec_mergeh(tc0vec, tc0vec); \
......
...@@ -322,7 +322,7 @@ static void PREFIX_h264_qpel16_h_lowpass_altivec(uint8_t * dst, uint8_t * src, i ...@@ -322,7 +322,7 @@ static void PREFIX_h264_qpel16_h_lowpass_altivec(uint8_t * dst, uint8_t * src, i
pp1A, pp1B, pp2A, pp2B, pp3A, pp3B, pp1A, pp1B, pp2A, pp2B, pp3A, pp3B,
psumA, psumB, sumA, sumB; psumA, psumB, sumA, sumB;
vec_u8 sum, vdst, fsum; vec_u8 sum, fsum;
for (i = 0 ; i < 16 ; i ++) { for (i = 0 ; i < 16 ; i ++) {
vec_u8 srcR1 = vec_ld(-2, src); vec_u8 srcR1 = vec_ld(-2, src);
...@@ -423,9 +423,8 @@ static void PREFIX_h264_qpel16_h_lowpass_altivec(uint8_t * dst, uint8_t * src, i ...@@ -423,9 +423,8 @@ static void PREFIX_h264_qpel16_h_lowpass_altivec(uint8_t * dst, uint8_t * src, i
sum = vec_packsu(sumA, sumB); sum = vec_packsu(sumA, sumB);
ASSERT_ALIGNED(dst); ASSERT_ALIGNED(dst);
vdst = vec_ld(0, dst);
OP_U8_ALTIVEC(fsum, sum, vdst); OP_U8_ALTIVEC(fsum, sum, vec_ld(0, dst));
vec_st(fsum, 0, dst); vec_st(fsum, 0, dst);
...@@ -486,7 +485,7 @@ static void PREFIX_h264_qpel16_v_lowpass_altivec(uint8_t * dst, uint8_t * src, i ...@@ -486,7 +485,7 @@ static void PREFIX_h264_qpel16_v_lowpass_altivec(uint8_t * dst, uint8_t * src, i
srcP3ssA, srcP3ssB, srcP3ssA, srcP3ssB,
sum1A, sum1B, sum2A, sum2B, sum3A, sum3B; sum1A, sum1B, sum2A, sum2B, sum3A, sum3B;
vec_u8 sum, vdst, fsum, srcP3a, srcP3b, srcP3; vec_u8 sum, fsum, srcP3a, srcP3b, srcP3;
for (i = 0 ; i < 16 ; i++) { for (i = 0 ; i < 16 ; i++) {
srcP3a = vec_ld(0, srcbis += srcStride); srcP3a = vec_ld(0, srcbis += srcStride);
...@@ -532,9 +531,8 @@ static void PREFIX_h264_qpel16_v_lowpass_altivec(uint8_t * dst, uint8_t * src, i ...@@ -532,9 +531,8 @@ static void PREFIX_h264_qpel16_v_lowpass_altivec(uint8_t * dst, uint8_t * src, i
sum = vec_packsu(sumA, sumB); sum = vec_packsu(sumA, sumB);
ASSERT_ALIGNED(dst); ASSERT_ALIGNED(dst);
vdst = vec_ld(0, dst);
OP_U8_ALTIVEC(fsum, sum, vdst); OP_U8_ALTIVEC(fsum, sum, vec_ld(0, dst));
vec_st(fsum, 0, dst); vec_st(fsum, 0, dst);
...@@ -582,7 +580,7 @@ static void PREFIX_h264_qpel16_hv_lowpass_altivec(uint8_t * dst, int16_t * tmp, ...@@ -582,7 +580,7 @@ static void PREFIX_h264_qpel16_hv_lowpass_altivec(uint8_t * dst, int16_t * tmp,
pp3Ae, pp3Ao, pp3Be, pp3Bo, pp1cAe, pp1cAo, pp1cBe, pp1cBo, pp3Ae, pp3Ao, pp3Be, pp3Bo, pp1cAe, pp1cAo, pp1cBe, pp1cBo,
pp32Ae, pp32Ao, pp32Be, pp32Bo, sumAe, sumAo, sumBe, sumBo, pp32Ae, pp32Ao, pp32Be, pp32Bo, sumAe, sumAo, sumBe, sumBo,
ssumAe, ssumAo, ssumBe, ssumBo; ssumAe, ssumAo, ssumBe, ssumBo;
vec_u8 fsum, sumv, sum, vdst; vec_u8 fsum, sumv, sum;
vec_s16 ssume, ssumo; vec_s16 ssume, ssumo;
src -= (2 * srcStride); src -= (2 * srcStride);
...@@ -766,9 +764,8 @@ static void PREFIX_h264_qpel16_hv_lowpass_altivec(uint8_t * dst, int16_t * tmp, ...@@ -766,9 +764,8 @@ static void PREFIX_h264_qpel16_hv_lowpass_altivec(uint8_t * dst, int16_t * tmp,
sum = vec_perm(sumv, sumv, mperm); sum = vec_perm(sumv, sumv, mperm);
ASSERT_ALIGNED(dst); ASSERT_ALIGNED(dst);
vdst = vec_ld(0, dst);
OP_U8_ALTIVEC(fsum, sum, vdst); OP_U8_ALTIVEC(fsum, sum, vec_ld(0, dst));
vec_st(fsum, 0, dst); vec_st(fsum, 0, dst);
......
...@@ -25,7 +25,9 @@ Write and read amr data according to RFC3267, http://www.ietf.org/rfc/rfc3267.tx ...@@ -25,7 +25,9 @@ Write and read amr data according to RFC3267, http://www.ietf.org/rfc/rfc3267.tx
Only mono files are supported. Only mono files are supported.
*/ */
#include "libavutil/avassert.h" #include "libavutil/avassert.h"
#include "libavutil/channel_layout.h"
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
...@@ -98,6 +100,7 @@ static int amr_read_header(AVFormatContext *s) ...@@ -98,6 +100,7 @@ static int amr_read_header(AVFormatContext *s)
st->codec->sample_rate = 8000; st->codec->sample_rate = 8000;
} }
st->codec->channels = 1; st->codec->channels = 1;
st->codec->channel_layout = AV_CH_LAYOUT_MONO;
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
avpriv_set_pts_info(st, 64, 1, st->codec->sample_rate); avpriv_set_pts_info(st, 64, 1, st->codec->sample_rate);
......
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
*/ */
#include <string.h> #include <string.h>
#include "libavutil/channel_layout.h"
#include "avformat.h" #include "avformat.h"
static int apc_probe(AVProbeData *p) static int apc_probe(AVProbeData *p)
...@@ -58,9 +60,13 @@ static int apc_read_header(AVFormatContext *s) ...@@ -58,9 +60,13 @@ static int apc_read_header(AVFormatContext *s)
/* initial predictor values for adpcm decoder */ /* initial predictor values for adpcm decoder */
avio_read(pb, st->codec->extradata, 2 * 4); avio_read(pb, st->codec->extradata, 2 * 4);
st->codec->channels = 1; if (avio_rl32(pb)) {
if (avio_rl32(pb)) st->codec->channels = 2;
st->codec->channels = 2; st->codec->channel_layout = AV_CH_LAYOUT_STEREO;
} else {
st->codec->channels = 1;
st->codec->channel_layout = AV_CH_LAYOUT_MONO;
}
st->codec->bits_per_coded_sample = 4; st->codec->bits_per_coded_sample = 4;
st->codec->bit_rate = st->codec->bits_per_coded_sample * st->codec->channels st->codec->bit_rate = st->codec->bits_per_coded_sample * st->codec->channels
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
* @see http://www.svatopluk.com/andux/docs/dfvid.html * @see http://www.svatopluk.com/andux/docs/dfvid.html
*/ */
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h" #include "libavutil/intreadwrite.h"
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
...@@ -240,6 +241,7 @@ static int vid_read_packet(AVFormatContext *s, ...@@ -240,6 +241,7 @@ static int vid_read_packet(AVFormatContext *s,
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->codec_id = AV_CODEC_ID_PCM_U8; st->codec->codec_id = AV_CODEC_ID_PCM_U8;
st->codec->channels = 1; st->codec->channels = 1;
st->codec->channel_layout = AV_CH_LAYOUT_MONO;
st->codec->bits_per_coded_sample = 8; st->codec->bits_per_coded_sample = 8;
st->codec->sample_rate = vid->sample_rate; st->codec->sample_rate = vid->sample_rate;
st->codec->bit_rate = 8 * st->codec->sample_rate; st->codec->bit_rate = 8 * st->codec->sample_rate;
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
* @see http://wiki.multimedia.cx/index.php?title=BFI * @see http://wiki.multimedia.cx/index.php?title=BFI
*/ */
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h" #include "libavutil/intreadwrite.h"
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
...@@ -96,6 +97,7 @@ static int bfi_read_header(AVFormatContext * s) ...@@ -96,6 +97,7 @@ static int bfi_read_header(AVFormatContext * s)
astream->codec->codec_type = AVMEDIA_TYPE_AUDIO; astream->codec->codec_type = AVMEDIA_TYPE_AUDIO;
astream->codec->codec_id = AV_CODEC_ID_PCM_U8; astream->codec->codec_id = AV_CODEC_ID_PCM_U8;
astream->codec->channels = 1; astream->codec->channels = 1;
astream->codec->channel_layout = AV_CH_LAYOUT_MONO;
astream->codec->bits_per_coded_sample = 8; astream->codec->bits_per_coded_sample = 8;
astream->codec->bit_rate = astream->codec->bit_rate =
astream->codec->sample_rate * astream->codec->bits_per_coded_sample; astream->codec->sample_rate * astream->codec->bits_per_coded_sample;
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
* http://wiki.multimedia.cx/index.php?title=Bink_Container * http://wiki.multimedia.cx/index.php?title=Bink_Container
*/ */
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h" #include "libavutil/intreadwrite.h"
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
...@@ -143,7 +144,13 @@ static int read_header(AVFormatContext *s) ...@@ -143,7 +144,13 @@ static int read_header(AVFormatContext *s)
flags = avio_rl16(pb); flags = avio_rl16(pb);
ast->codec->codec_id = flags & BINK_AUD_USEDCT ? ast->codec->codec_id = flags & BINK_AUD_USEDCT ?
AV_CODEC_ID_BINKAUDIO_DCT : AV_CODEC_ID_BINKAUDIO_RDFT; AV_CODEC_ID_BINKAUDIO_DCT : AV_CODEC_ID_BINKAUDIO_RDFT;
ast->codec->channels = flags & BINK_AUD_STEREO ? 2 : 1; if (flags & BINK_AUD_STEREO) {
ast->codec->channels = 2;
ast->codec->channel_layout = AV_CH_LAYOUT_STEREO;
} else {
ast->codec->channels = 1;
ast->codec->channel_layout = AV_CH_LAYOUT_MONO;
}
ast->codec->extradata = av_mallocz(4 + FF_INPUT_BUFFER_PADDING_SIZE); ast->codec->extradata = av_mallocz(4 + FF_INPUT_BUFFER_PADDING_SIZE);
if (!ast->codec->extradata) if (!ast->codec->extradata)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "libavutil/channel_layout.h"
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
...@@ -58,6 +59,7 @@ static int bmv_read_header(AVFormatContext *s) ...@@ -58,6 +59,7 @@ static int bmv_read_header(AVFormatContext *s)
ast->codec->codec_type = AVMEDIA_TYPE_AUDIO; ast->codec->codec_type = AVMEDIA_TYPE_AUDIO;
ast->codec->codec_id = AV_CODEC_ID_BMV_AUDIO; ast->codec->codec_id = AV_CODEC_ID_BMV_AUDIO;
ast->codec->channels = 2; ast->codec->channels = 2;
ast->codec->channel_layout = AV_CH_LAYOUT_STEREO;
ast->codec->sample_rate = 22050; ast->codec->sample_rate = 22050;
avpriv_set_pts_info(ast, 16, 1, 22050); avpriv_set_pts_info(ast, 16, 1, 22050);
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h" #include "libavutil/intreadwrite.h"
#include "libavutil/parseutils.h" #include "libavutil/parseutils.h"
#include "libavutil/opt.h" #include "libavutil/opt.h"
...@@ -143,7 +144,13 @@ static int cdxl_read_packet(AVFormatContext *s, AVPacket *pkt) ...@@ -143,7 +144,13 @@ static int cdxl_read_packet(AVFormatContext *s, AVPacket *pkt)
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->codec_tag = 0; st->codec->codec_tag = 0;
st->codec->codec_id = AV_CODEC_ID_PCM_S8; st->codec->codec_id = AV_CODEC_ID_PCM_S8;
st->codec->channels = cdxl->header[1] & 0x10 ? 2 : 1; if (cdxl->header[1] & 0x10) {
st->codec->channels = 2;
st->codec->channel_layout = AV_CH_LAYOUT_STEREO;
} else {
st->codec->channels = 1;
st->codec->channel_layout = AV_CH_LAYOUT_MONO;
}
st->codec->sample_rate = cdxl->sample_rate; st->codec->sample_rate = cdxl->sample_rate;
st->start_time = 0; st->start_time = 0;
cdxl->audio_stream_index = st->index; cdxl->audio_stream_index = st->index;
......
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
* License along with FFmpeg; if not, write to the Free Software * License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "libavutil/channel_layout.h"
#include "avformat.h" #include "avformat.h"
static int daud_header(AVFormatContext *s) { static int daud_header(AVFormatContext *s) {
...@@ -28,6 +30,7 @@ static int daud_header(AVFormatContext *s) { ...@@ -28,6 +30,7 @@ static int daud_header(AVFormatContext *s) {
st->codec->codec_id = AV_CODEC_ID_PCM_S24DAUD; st->codec->codec_id = AV_CODEC_ID_PCM_S24DAUD;
st->codec->codec_tag = MKTAG('d', 'a', 'u', 'd'); st->codec->codec_tag = MKTAG('d', 'a', 'u', 'd');
st->codec->channels = 6; st->codec->channels = 6;
st->codec->channel_layout = AV_CH_LAYOUT_5POINT1;
st->codec->sample_rate = 96000; st->codec->sample_rate = 96000;
st->codec->bit_rate = 3 * 6 * 96000 * 8; st->codec->bit_rate = 3 * 6 * 96000 * 8;
st->codec->block_align = 3 * 6; st->codec->block_align = 3 * 6;
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
* Delphine Software International CIN file demuxer * Delphine Software International CIN file demuxer
*/ */
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h" #include "libavutil/intreadwrite.h"
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
...@@ -132,6 +133,7 @@ static int cin_read_header(AVFormatContext *s) ...@@ -132,6 +133,7 @@ static int cin_read_header(AVFormatContext *s)
st->codec->codec_id = AV_CODEC_ID_DSICINAUDIO; st->codec->codec_id = AV_CODEC_ID_DSICINAUDIO;
st->codec->codec_tag = 0; /* no tag */ st->codec->codec_tag = 0; /* no tag */
st->codec->channels = 1; st->codec->channels = 1;
st->codec->channel_layout = AV_CH_LAYOUT_MONO;
st->codec->sample_rate = 22050; st->codec->sample_rate = 22050;
st->codec->bits_per_coded_sample = 8; st->codec->bits_per_coded_sample = 8;
st->codec->bit_rate = st->codec->sample_rate * st->codec->bits_per_coded_sample * st->codec->channels; st->codec->bit_rate = st->codec->sample_rate * st->codec->bits_per_coded_sample * st->codec->channels;
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "internal.h" #include "internal.h"
#include "libavcodec/dv_profile.h" #include "libavcodec/dv_profile.h"
#include "libavcodec/dvdata.h" #include "libavcodec/dvdata.h"
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h" #include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h" #include "libavutil/mathematics.h"
#include "libavutil/timecode.h" #include "libavutil/timecode.h"
...@@ -252,6 +253,7 @@ static int dv_extract_audio_info(DVDemuxContext* c, uint8_t* frame) ...@@ -252,6 +253,7 @@ static int dv_extract_audio_info(DVDemuxContext* c, uint8_t* frame)
} }
c->ast[i]->codec->sample_rate = dv_audio_frequency[freq]; c->ast[i]->codec->sample_rate = dv_audio_frequency[freq];
c->ast[i]->codec->channels = 2; c->ast[i]->codec->channels = 2;
c->ast[i]->codec->channel_layout = AV_CH_LAYOUT_STEREO;
c->ast[i]->codec->bit_rate = 2 * dv_audio_frequency[freq] * 16; c->ast[i]->codec->bit_rate = 2 * dv_audio_frequency[freq] * 16;
c->ast[i]->start_time = 0; c->ast[i]->start_time = 0;
} }
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
*/ */
#include "libavutil/avstring.h" #include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "libavutil/dict.h" #include "libavutil/dict.h"
#include "libavutil/opt.h" #include "libavutil/opt.h"
#include "libavutil/intfloat.h" #include "libavutil/intfloat.h"
...@@ -778,6 +779,8 @@ retry_duration: ...@@ -778,6 +779,8 @@ retry_duration:
bits_per_coded_sample = (flags & FLV_AUDIO_SAMPLESIZE_MASK) ? 16 : 8; bits_per_coded_sample = (flags & FLV_AUDIO_SAMPLESIZE_MASK) ? 16 : 8;
if(!st->codec->channels || !st->codec->sample_rate || !st->codec->bits_per_coded_sample) { if(!st->codec->channels || !st->codec->sample_rate || !st->codec->bits_per_coded_sample) {
st->codec->channels = channels; st->codec->channels = channels;
st->codec->channel_layout = channels == 1 ? AV_CH_LAYOUT_MONO :
AV_CH_LAYOUT_STEREO;
st->codec->sample_rate = sample_rate; st->codec->sample_rate = sample_rate;
st->codec->bits_per_coded_sample = bits_per_coded_sample; st->codec->bits_per_coded_sample = bits_per_coded_sample;
} }
...@@ -824,6 +827,7 @@ retry_duration: ...@@ -824,6 +827,7 @@ retry_duration:
if (avpriv_mpeg4audio_get_config(&cfg, st->codec->extradata, if (avpriv_mpeg4audio_get_config(&cfg, st->codec->extradata,
st->codec->extradata_size * 8, 1) >= 0) { st->codec->extradata_size * 8, 1) >= 0) {
st->codec->channels = cfg.channels; st->codec->channels = cfg.channels;
st->codec->channel_layout = 0;
if (cfg.ext_sample_rate) if (cfg.ext_sample_rate)
st->codec->sample_rate = cfg.ext_sample_rate; st->codec->sample_rate = cfg.ext_sample_rate;
else else
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "libavutil/channel_layout.h"
#include "libavutil/mathematics.h" #include "libavutil/mathematics.h"
#include "libavutil/opt.h" #include "libavutil/opt.h"
#include "avformat.h" #include "avformat.h"
...@@ -63,6 +64,7 @@ static int gsm_read_header(AVFormatContext *s) ...@@ -63,6 +64,7 @@ static int gsm_read_header(AVFormatContext *s)
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->codec_id = s->iformat->raw_codec_id; st->codec->codec_id = s->iformat->raw_codec_id;
st->codec->channels = 1; st->codec->channels = 1;
st->codec->channel_layout = AV_CH_LAYOUT_MONO;
st->codec->sample_rate = c->sample_rate; st->codec->sample_rate = c->sample_rate;
st->codec->bit_rate = GSM_BLOCK_SIZE * 8 * c->sample_rate / GSM_BLOCK_SAMPLES; st->codec->bit_rate = GSM_BLOCK_SIZE * 8 * c->sample_rate / GSM_BLOCK_SAMPLES;
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "libavutil/channel_layout.h"
#include "libavutil/common.h" #include "libavutil/common.h"
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
...@@ -141,6 +142,7 @@ static int get_sindex(AVFormatContext *s, int id, int format) { ...@@ -141,6 +142,7 @@ static int get_sindex(AVFormatContext *s, int id, int format) {
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->codec_id = AV_CODEC_ID_PCM_S24LE; st->codec->codec_id = AV_CODEC_ID_PCM_S24LE;
st->codec->channels = 1; st->codec->channels = 1;
st->codec->channel_layout = AV_CH_LAYOUT_MONO;
st->codec->sample_rate = 48000; st->codec->sample_rate = 48000;
st->codec->bit_rate = 3 * 1 * 48000 * 8; st->codec->bit_rate = 3 * 1 * 48000 * 8;
st->codec->block_align = 3 * 1; st->codec->block_align = 3 * 1;
...@@ -150,6 +152,7 @@ static int get_sindex(AVFormatContext *s, int id, int format) { ...@@ -150,6 +152,7 @@ static int get_sindex(AVFormatContext *s, int id, int format) {
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->codec_id = AV_CODEC_ID_PCM_S16LE; st->codec->codec_id = AV_CODEC_ID_PCM_S16LE;
st->codec->channels = 1; st->codec->channels = 1;
st->codec->channel_layout = AV_CH_LAYOUT_MONO;
st->codec->sample_rate = 48000; st->codec->sample_rate = 48000;
st->codec->bit_rate = 2 * 1 * 48000 * 8; st->codec->bit_rate = 2 * 1 * 48000 * 8;
st->codec->block_align = 2 * 1; st->codec->block_align = 2 * 1;
...@@ -159,6 +162,7 @@ static int get_sindex(AVFormatContext *s, int id, int format) { ...@@ -159,6 +162,7 @@ static int get_sindex(AVFormatContext *s, int id, int format) {
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->codec_id = AV_CODEC_ID_AC3; st->codec->codec_id = AV_CODEC_ID_AC3;
st->codec->channels = 2; st->codec->channels = 2;
st->codec->channel_layout = AV_CH_LAYOUT_STEREO;
st->codec->sample_rate = 48000; st->codec->sample_rate = 48000;
break; break;
// timecode tracks: // timecode tracks:
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
* http://www.csse.monash.edu.au/~timf/ * http://www.csse.monash.edu.au/~timf/
*/ */
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h" #include "libavutil/intreadwrite.h"
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
...@@ -178,7 +179,14 @@ static int roq_read_packet(AVFormatContext *s, ...@@ -178,7 +179,14 @@ static int roq_read_packet(AVFormatContext *s,
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->codec_id = AV_CODEC_ID_ROQ_DPCM; st->codec->codec_id = AV_CODEC_ID_ROQ_DPCM;
st->codec->codec_tag = 0; /* no tag */ st->codec->codec_tag = 0; /* no tag */
st->codec->channels = roq->audio_channels = chunk_type == RoQ_SOUND_STEREO ? 2 : 1; if (chunk_type == RoQ_SOUND_STEREO) {
st->codec->channels = 2;
st->codec->channel_layout = AV_CH_LAYOUT_STEREO;
} else {
st->codec->channels = 1;
st->codec->channel_layout = AV_CH_LAYOUT_MONO;
}
roq->audio_channels = st->codec->channels;
st->codec->sample_rate = RoQ_AUDIO_SAMPLE_RATE; st->codec->sample_rate = RoQ_AUDIO_SAMPLE_RATE;
st->codec->bits_per_coded_sample = 16; st->codec->bits_per_coded_sample = 16;
st->codec->bit_rate = st->codec->channels * st->codec->sample_rate * st->codec->bit_rate = st->codec->channels * st->codec->sample_rate *
......
...@@ -28,10 +28,11 @@ ...@@ -28,10 +28,11 @@
* http://wiki.multimedia.cx/index.php?title=IFF * http://wiki.multimedia.cx/index.php?title=IFF
*/ */
#include "libavcodec/bytestream.h"
#include "libavutil/avassert.h" #include "libavutil/avassert.h"
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h" #include "libavutil/intreadwrite.h"
#include "libavutil/dict.h" #include "libavutil/dict.h"
#include "libavcodec/bytestream.h"
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
...@@ -155,6 +156,7 @@ static int iff_read_header(AVFormatContext *s) ...@@ -155,6 +156,7 @@ static int iff_read_header(AVFormatContext *s)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
st->codec->channels = 1; st->codec->channels = 1;
st->codec->channel_layout = AV_CH_LAYOUT_MONO;
avio_skip(pb, 8); avio_skip(pb, 8);
// codec_tag used by ByteRun1 decoder to distinguish progressive (PBM) and interlaced (ILBM) content // codec_tag used by ByteRun1 decoder to distinguish progressive (PBM) and interlaced (ILBM) content
st->codec->codec_tag = avio_rl32(pb); st->codec->codec_tag = avio_rl32(pb);
...@@ -191,7 +193,13 @@ static int iff_read_header(AVFormatContext *s) ...@@ -191,7 +193,13 @@ static int iff_read_header(AVFormatContext *s)
case ID_CHAN: case ID_CHAN:
if (data_size < 4) if (data_size < 4)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
st->codec->channels = (avio_rb32(pb) < 6) ? 1 : 2; if (avio_rb32(pb) < 6) {
st->codec->channels = 1;
st->codec->channel_layout = AV_CH_LAYOUT_MONO;
} else {
st->codec->channels = 2;
st->codec->channel_layout = AV_CH_LAYOUT_STEREO;
}
break; break;
case ID_CAMG: case ID_CAMG:
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
* up and sending out the chunks. * up and sending out the chunks.
*/ */
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h" #include "libavutil/intreadwrite.h"
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
...@@ -605,6 +606,8 @@ static int ipmovie_read_header(AVFormatContext *s) ...@@ -605,6 +606,8 @@ static int ipmovie_read_header(AVFormatContext *s)
st->codec->codec_id = ipmovie->audio_type; st->codec->codec_id = ipmovie->audio_type;
st->codec->codec_tag = 0; /* no tag */ st->codec->codec_tag = 0; /* no tag */
st->codec->channels = ipmovie->audio_channels; st->codec->channels = ipmovie->audio_channels;
st->codec->channel_layout = st->codec->channels == 1 ? AV_CH_LAYOUT_MONO :
AV_CH_LAYOUT_STEREO;
st->codec->sample_rate = ipmovie->audio_sample_rate; st->codec->sample_rate = ipmovie->audio_sample_rate;
st->codec->bits_per_coded_sample = ipmovie->audio_bits; st->codec->bits_per_coded_sample = ipmovie->audio_bits;
st->codec->bit_rate = st->codec->channels * st->codec->sample_rate * st->codec->bit_rate = st->codec->channels * st->codec->sample_rate *
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
* @see http://wiki.multimedia.cx/index.php?title=FunCom_ISS * @see http://wiki.multimedia.cx/index.php?title=FunCom_ISS
*/ */
#include "libavutil/channel_layout.h"
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
#include "libavutil/avstring.h" #include "libavutil/avstring.h"
...@@ -99,7 +100,13 @@ static av_cold int iss_read_header(AVFormatContext *s) ...@@ -99,7 +100,13 @@ static av_cold int iss_read_header(AVFormatContext *s)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->codec_id = AV_CODEC_ID_ADPCM_IMA_ISS; st->codec->codec_id = AV_CODEC_ID_ADPCM_IMA_ISS;
st->codec->channels = stereo ? 2 : 1; if (stereo) {
st->codec->channels = 2;
st->codec->channel_layout = AV_CH_LAYOUT_STEREO;
} else {
st->codec->channels = 1;
st->codec->channel_layout = AV_CH_LAYOUT_MONO;
}
st->codec->sample_rate = 44100; st->codec->sample_rate = 44100;
if(rate_divisor > 0) if(rate_divisor > 0)
st->codec->sample_rate /= rate_divisor; st->codec->sample_rate /= rate_divisor;
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
* @author Peter Ross <pross@xvid.org> * @author Peter Ross <pross@xvid.org>
*/ */
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h" #include "libavutil/intreadwrite.h"
#include "avformat.h" #include "avformat.h"
#include "internal.h" #include "internal.h"
...@@ -91,6 +92,7 @@ static int read_header(AVFormatContext *s) ...@@ -91,6 +92,7 @@ static int read_header(AVFormatContext *s)
ast->codec->codec_tag = 0; /* no fourcc */ ast->codec->codec_tag = 0; /* no fourcc */
ast->codec->sample_rate = avio_rl16(pb); ast->codec->sample_rate = avio_rl16(pb);
ast->codec->channels = 1; ast->codec->channels = 1;
ast->codec->channel_layout = AV_CH_LAYOUT_MONO;
avpriv_set_pts_info(ast, 64, 1, ast->codec->sample_rate); avpriv_set_pts_info(ast, 64, 1, ast->codec->sample_rate);
avio_skip(pb, 10); avio_skip(pb, 10);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment