diff options
author | wm4 <wm4@nowhere> | 2015-03-10 15:12:52 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-03-10 15:12:52 +0100 |
commit | 5f8b060ec2dde7d0ff5468a5b7499851c22b756d (patch) | |
tree | 593321dd494d3bf24727ec7ee3a7631b07b49cc8 /audio/decode/ad_spdif.c | |
parent | 574bd127ecadb6d7cbcad9aea2187b05a433dda1 (diff) | |
download | mpv-5f8b060ec2dde7d0ff5468a5b7499851c22b756d.tar.bz2 mpv-5f8b060ec2dde7d0ff5468a5b7499851c22b756d.tar.xz |
ad_spdif: move frame sizes to a general function
Needed for the next commit. This commit should probably be reverted as
soon as we're working with full audio frames internally, instead of
"flat" FIFOs.
Diffstat (limited to 'audio/decode/ad_spdif.c')
-rw-r--r-- | audio/decode/ad_spdif.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/audio/decode/ad_spdif.c b/audio/decode/ad_spdif.c index f7891767d2..3da5def868 100644 --- a/audio/decode/ad_spdif.c +++ b/audio/decode/ad_spdif.c @@ -117,13 +117,11 @@ static int init(struct dec_audio *da, const char *decoder) int samplerate = 0; switch (stream->codec->codec_id) { case AV_CODEC_ID_AAC: - spdif_ctx->iec61937_packet_size = 16384; sample_format = AF_FORMAT_S_AAC; samplerate = 48000; num_channels = 2; break; case AV_CODEC_ID_AC3: - spdif_ctx->iec61937_packet_size = 6144; sample_format = AF_FORMAT_S_AC3; samplerate = 48000; num_channels = 2; @@ -131,31 +129,26 @@ static int init(struct dec_audio *da, const char *decoder) case AV_CODEC_ID_DTS: if (da->opts->dtshd) { av_dict_set(&format_opts, "dtshd_rate", "768000", 0); // 4*192000 - spdif_ctx->iec61937_packet_size = 32768; sample_format = AF_FORMAT_S_DTSHD; samplerate = 192000; num_channels = 2*4; } else { - spdif_ctx->iec61937_packet_size = 32768; sample_format = AF_FORMAT_S_DTS; samplerate = 48000; num_channels = 2; } break; case AV_CODEC_ID_EAC3: - spdif_ctx->iec61937_packet_size = 24576; sample_format = AF_FORMAT_S_EAC3; samplerate = 192000; num_channels = 2; break; case AV_CODEC_ID_MP3: - spdif_ctx->iec61937_packet_size = 4608; sample_format = AF_FORMAT_S_MP3; samplerate = 48000; num_channels = 2; break; case AV_CODEC_ID_TRUEHD: - spdif_ctx->iec61937_packet_size = 61440; sample_format = AF_FORMAT_S_TRUEHD; samplerate = 192000; num_channels = 8; @@ -166,6 +159,7 @@ static int init(struct dec_audio *da, const char *decoder) mp_audio_set_num_channels(&spdif_ctx->fmt, num_channels); mp_audio_set_format(&spdif_ctx->fmt, sample_format); spdif_ctx->fmt.rate = samplerate; + spdif_ctx->iec61937_packet_size = af_format_sample_alignment(sample_format); if (avformat_write_header(lavf_ctx, &format_opts) < 0) { MP_FATAL(da, "libavformat spdif initialization failed.\n"); |