summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-03-06 17:55:31 +0000
committerrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-03-06 17:55:31 +0000
commitd13d95f551f018681509b88e0f6d936297408630 (patch)
tree42b5077cf8a665c671b0fbae20fc4fc91831687f
parent234edad908b8493ae030d0e6732951163b711d33 (diff)
downloadmpv-d13d95f551f018681509b88e0f6d936297408630.tar.bz2
mpv-d13d95f551f018681509b88e0f6d936297408630.tar.xz
alac support via lavc decoder
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14923 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--etc/codecs.conf7
-rw-r--r--libmpcodecs/ad_ffmpeg.c1
-rw-r--r--libmpdemux/demux_mov.c9
3 files changed, 17 insertions, 0 deletions
diff --git a/etc/codecs.conf b/etc/codecs.conf
index 51d31896fb..45d549b4a9 100644
--- a/etc/codecs.conf
+++ b/etc/codecs.conf
@@ -2166,6 +2166,13 @@ audiocodec ffflac
driver ffmpeg
dll "flac"
+audiocodec ffalac
+ info "FFmpeg ALAC audio decoder"
+ status working
+ fourcc alac
+ driver ffmpeg
+ dll "alac"
+
audiocodec pcm
info "Uncompressed PCM"
status working
diff --git a/libmpcodecs/ad_ffmpeg.c b/libmpcodecs/ad_ffmpeg.c
index 13f56e054d..4d6de38fcd 100644
--- a/libmpcodecs/ad_ffmpeg.c
+++ b/libmpcodecs/ad_ffmpeg.c
@@ -66,6 +66,7 @@ static int init(sh_audio_t *sh_audio)
lavc_context->sample_rate = sh_audio->wf->nSamplesPerSec;
lavc_context->bit_rate = sh_audio->wf->nAvgBytesPerSec * 8;
lavc_context->block_align = sh_audio->wf->nBlockAlign;
+ lavc_context->bits_per_sample = sh_audio->wf->wBitsPerSample;
}
lavc_context->codec_tag = sh_audio->format; //FOURCC
lavc_context->codec_id = lavc_codec->id; // not sure if required, imho not --A'rpi
diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c
index a5fd1b7e93..4c98397e0a 100644
--- a/libmpdemux/demux_mov.c
+++ b/libmpdemux/demux_mov.c
@@ -988,6 +988,15 @@ static void lschunks(demuxer_t* demuxer,int level,off_t endpos,mov_track_t* trak
#endif
}
} break;
+ case MOV_FOURCC('a','l','a','c'): {
+ mp_msg(MSGT_DEMUX, MSGL_INFO, "MOV: Found alac atom (%d)!\n", atom_len);
+ if(atom_len > 8) {
+ // copy all the atom (not only payload) for lavc alac decoder
+ sh->codecdata_len = atom_len;
+ sh->codecdata = (unsigned char *)malloc(sh->codecdata_len);
+ memcpy(sh->codecdata, &trak->stdata[28], sh->codecdata_len);
+ }
+ } break;
default:
mp_msg(MSGT_DEMUX, MSGL_INFO, "MOV: Found unknown audio atom %c%c%c%c (%d)!\n",
trak->stdata[32+adjust],trak->stdata[33+adjust],trak->stdata[34+adjust],trak->stdata[35+adjust],