|
|
@ -26,6 +26,7 @@ |
|
|
|
#include "pcm.h" |
|
|
|
#include "pcm.h" |
|
|
|
#include "aiff.h" |
|
|
|
#include "aiff.h" |
|
|
|
#include "isom.h" |
|
|
|
#include "isom.h" |
|
|
|
|
|
|
|
#include "id3v2.h" |
|
|
|
|
|
|
|
|
|
|
|
#define AIFF 0 |
|
|
|
#define AIFF 0 |
|
|
|
#define AIFF_C_VERSION1 0xA2805140 |
|
|
|
#define AIFF_C_VERSION1 0xA2805140 |
|
|
@ -195,6 +196,7 @@ static int aiff_read_header(AVFormatContext *s) |
|
|
|
AVIOContext *pb = s->pb; |
|
|
|
AVIOContext *pb = s->pb; |
|
|
|
AVStream * st; |
|
|
|
AVStream * st; |
|
|
|
AIFFInputContext *aiff = s->priv_data; |
|
|
|
AIFFInputContext *aiff = s->priv_data; |
|
|
|
|
|
|
|
ID3v2ExtraMeta *id3v2_extra_meta = NULL; |
|
|
|
|
|
|
|
|
|
|
|
/* check FORM header */ |
|
|
|
/* check FORM header */ |
|
|
|
filesize = get_tag(pb, &tag); |
|
|
|
filesize = get_tag(pb, &tag); |
|
|
@ -231,6 +233,10 @@ static int aiff_read_header(AVFormatContext *s) |
|
|
|
if (offset > 0) // COMM is after SSND
|
|
|
|
if (offset > 0) // COMM is after SSND
|
|
|
|
goto got_sound; |
|
|
|
goto got_sound; |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
case MKTAG('I', 'D', '3', ' '): |
|
|
|
|
|
|
|
ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta); |
|
|
|
|
|
|
|
ff_id3v2_free_extra_meta(&id3v2_extra_meta); |
|
|
|
|
|
|
|
break; |
|
|
|
case MKTAG('F', 'V', 'E', 'R'): /* Version chunk */ |
|
|
|
case MKTAG('F', 'V', 'E', 'R'): /* Version chunk */ |
|
|
|
version = avio_rb32(pb); |
|
|
|
version = avio_rb32(pb); |
|
|
|
break; |
|
|
|
break; |
|
|
|