mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
pass QDMC extradata to the decoder
Makes playing QDMC files in MPlayer work when using the libavformat demuxer. Problem was that the extradata was not passed from demuxer to decoder. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
This commit is contained in:
parent
48545a8f72
commit
ed19fafd48
@ -389,6 +389,7 @@ enum CodecID {
|
|||||||
CODEC_ID_BINKAUDIO_RDFT,
|
CODEC_ID_BINKAUDIO_RDFT,
|
||||||
CODEC_ID_BINKAUDIO_DCT,
|
CODEC_ID_BINKAUDIO_DCT,
|
||||||
CODEC_ID_AAC_LATM,
|
CODEC_ID_AAC_LATM,
|
||||||
|
CODEC_ID_QDMC,
|
||||||
|
|
||||||
/* subtitle codecs */
|
/* subtitle codecs */
|
||||||
CODEC_ID_DVD_SUBTITLE= 0x17000,
|
CODEC_ID_DVD_SUBTITLE= 0x17000,
|
||||||
|
@ -249,6 +249,7 @@ const AVCodecTag codec_movaudio_tags[] = {
|
|||||||
{ CODEC_ID_QCELP, MKTAG('Q','c','l','q') },
|
{ CODEC_ID_QCELP, MKTAG('Q','c','l','q') },
|
||||||
{ CODEC_ID_QCELP, MKTAG('s','q','c','p') }, /* ISO Media fourcc */
|
{ CODEC_ID_QCELP, MKTAG('s','q','c','p') }, /* ISO Media fourcc */
|
||||||
|
|
||||||
|
{ CODEC_ID_QDMC, MKTAG('Q', 'D', 'M', 'C') }, /* QDMC */
|
||||||
{ CODEC_ID_QDM2, MKTAG('Q', 'D', 'M', '2') }, /* QDM2 */
|
{ CODEC_ID_QDM2, MKTAG('Q', 'D', 'M', '2') }, /* QDM2 */
|
||||||
|
|
||||||
{ CODEC_ID_DVAUDIO, MKTAG('v', 'd', 'v', 'a') },
|
{ CODEC_ID_DVAUDIO, MKTAG('v', 'd', 'v', 'a') },
|
||||||
|
@ -769,8 +769,8 @@ static int mov_read_wave(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
|||||||
if((uint64_t)atom.size > (1<<30))
|
if((uint64_t)atom.size > (1<<30))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (st->codec->codec_id == CODEC_ID_QDM2) {
|
if (st->codec->codec_id == CODEC_ID_QDM2 || st->codec->codec_id == CODEC_ID_QDMC) {
|
||||||
// pass all frma atom to codec, needed at least for QDM2
|
// pass all frma atom to codec, needed at least for QDMC and QDM2
|
||||||
av_free(st->codec->extradata);
|
av_free(st->codec->extradata);
|
||||||
st->codec->extradata = av_mallocz(atom.size + FF_INPUT_BUFFER_PADDING_SIZE);
|
st->codec->extradata = av_mallocz(atom.size + FF_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!st->codec->extradata)
|
if (!st->codec->extradata)
|
||||||
|
Loading…
Reference in New Issue
Block a user