summaryrefslogtreecommitdiffstats
path: root/audio/decode/ad_spdif.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2012-11-29 17:03:04 +0000
committerwm4 <wm4@nowhere>2012-12-03 21:08:52 +0100
commita4177fd5814300be95a050413f18bfc89f5c93df (patch)
treec73291fe93954531738907082459368b28c39bee /audio/decode/ad_spdif.c
parent1e9f37072b348aa396c063306eee813d001be602 (diff)
downloadmpv-a4177fd5814300be95a050413f18bfc89f5c93df.tar.bz2
mpv-a4177fd5814300be95a050413f18bfc89f5c93df.tar.xz
audio: make AC3 pass-through with ad_spdif work
Do not fall back to 0 for samplerate when parser is not initialized. Might fix some issues with using -ac spdifenc with audio in MKV or MP4. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35517 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace outdated list of unsupported formats by list of supported formats. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35534 b3059339-0415-0410-9bf9-f77b7e298cf2 Do not call af_fmt2str on the same data over and over. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35535 b3059339-0415-0410-9bf9-f77b7e298cf2 ad_spdif: use the more specific AF_FORMAT_AC3_LE when we handle AC3. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35536 b3059339-0415-0410-9bf9-f77b7e298cf2 Make AF_FORMAT_IS_IEC61937 include AF_FORMAT_IS_AC3. Our AC3 "sample format" is also iec61937. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35537 b3059339-0415-0410-9bf9-f77b7e298cf2 af_format: support endianness conversion also for iec61937 formats in general, not just AC3. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35538 b3059339-0415-0410-9bf9-f77b7e298cf2 Conflicts: audio/filter/af_format.c af_format: Fix check_format, non-special formats are of course supported. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35545 b3059339-0415-0410-9bf9-f77b7e298cf2 Note: see mplayer bug #2110
Diffstat (limited to 'audio/decode/ad_spdif.c')
-rw-r--r--audio/decode/ad_spdif.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/audio/decode/ad_spdif.c b/audio/decode/ad_spdif.c
index c22280cbf0..d8cf731d38 100644
--- a/audio/decode/ad_spdif.c
+++ b/audio/decode/ad_spdif.c
@@ -136,7 +136,6 @@ static int init(sh_audio_t *sh)
}
// get sample_rate & bitrate from parser
- bps = srate = 0;
x = ds_get_packet_pts(sh->ds, &start, &pts);
in_size = x;
if (x <= 0) {
@@ -144,10 +143,9 @@ static int init(sh_audio_t *sh)
x = 0;
}
ds_parse(sh->ds, &start, &x, pts, 0);
- if (x == 0) { // not enough buffer
- srate = 48000; //fake value
- bps = 768000/8; //fake value
- } else if (sh->avctx) {
+ srate = 48000; //fake value
+ bps = 768000/8; //fake value
+ if (x && sh->avctx) { // we have parser and large enough buffer
if (sh->avctx->sample_rate < 44100) {
mp_msg(MSGT_DECAUDIO,MSGL_INFO,
"This stream sample_rate[%d Hz] may be broken. "
@@ -170,7 +168,7 @@ static int init(sh_audio_t *sh)
break;
case CODEC_ID_AC3:
spdif_ctx->iec61937_packet_size = 6144;
- sh->sample_format = AF_FORMAT_IEC61937_LE;
+ sh->sample_format = AF_FORMAT_AC3_LE;
sh->samplerate = srate;
sh->channels = 2;
sh->i_bps = bps;