Commit ebc22cc2 authored by Peter Ross's avatar Peter Ross
Browse files

Electronic Arts demuxer: support SxEN audio tags found in 'Need for Speed: Pro...

Electronic Arts demuxer: support SxEN audio tags found in 'Need for Speed: Pro Street' computer game.

Originally committed as revision 14713 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 3b4b1137
...@@ -31,6 +31,9 @@ ...@@ -31,6 +31,9 @@
#define SEAD_TAG MKTAG('S', 'E', 'A', 'D') /* Sxxx header */ #define SEAD_TAG MKTAG('S', 'E', 'A', 'D') /* Sxxx header */
#define SNDC_TAG MKTAG('S', 'N', 'D', 'C') /* Sxxx data */ #define SNDC_TAG MKTAG('S', 'N', 'D', 'C') /* Sxxx data */
#define SEND_TAG MKTAG('S', 'E', 'N', 'D') /* Sxxx end */ #define SEND_TAG MKTAG('S', 'E', 'N', 'D') /* Sxxx end */
#define SHEN_TAG MKTAG('S', 'H', 'E', 'N') /* SxEN header */
#define SDEN_TAG MKTAG('S', 'D', 'E', 'N') /* SxEN data */
#define SEEN_TAG MKTAG('S', 'E', 'E', 'N') /* SxEN end */
#define ISNh_TAG MKTAG('1', 'S', 'N', 'h') /* 1SNx header */ #define ISNh_TAG MKTAG('1', 'S', 'N', 'h') /* 1SNx header */
#define EACS_TAG MKTAG('E', 'A', 'C', 'S') #define EACS_TAG MKTAG('E', 'A', 'C', 'S')
#define ISNd_TAG MKTAG('1', 'S', 'N', 'd') /* 1SNx data */ #define ISNd_TAG MKTAG('1', 'S', 'N', 'd') /* 1SNx data */
...@@ -304,6 +307,7 @@ static int process_ea_header(AVFormatContext *s) { ...@@ -304,6 +307,7 @@ static int process_ea_header(AVFormatContext *s) {
break; break;
case SCHl_TAG : case SCHl_TAG :
case SHEN_TAG :
blockid = get_le32(pb); blockid = get_le32(pb);
if (blockid == GSTR_TAG) { if (blockid == GSTR_TAG) {
url_fskip(pb, 4); url_fskip(pb, 4);
...@@ -361,6 +365,7 @@ static int ea_probe(AVProbeData *p) ...@@ -361,6 +365,7 @@ static int ea_probe(AVProbeData *p)
case ISNh_TAG: case ISNh_TAG:
case SCHl_TAG: case SCHl_TAG:
case SEAD_TAG: case SEAD_TAG:
case SHEN_TAG:
case kVGT_TAG: case kVGT_TAG:
case MADk_TAG: case MADk_TAG:
case MPCh_TAG: case MPCh_TAG:
...@@ -439,6 +444,7 @@ static int ea_read_packet(AVFormatContext *s, ...@@ -439,6 +444,7 @@ static int ea_read_packet(AVFormatContext *s,
case ISNd_TAG: case ISNd_TAG:
case SCDl_TAG: case SCDl_TAG:
case SNDC_TAG: case SNDC_TAG:
case SDEN_TAG:
if (!ea->audio_codec) { if (!ea->audio_codec) {
url_fskip(pb, chunk_size); url_fskip(pb, chunk_size);
break; break;
...@@ -476,6 +482,7 @@ static int ea_read_packet(AVFormatContext *s, ...@@ -476,6 +482,7 @@ static int ea_read_packet(AVFormatContext *s,
case ISNe_TAG: case ISNe_TAG:
case SCEl_TAG: case SCEl_TAG:
case SEND_TAG: case SEND_TAG:
case SEEN_TAG:
ret = AVERROR(EIO); ret = AVERROR(EIO);
packet_read = 1; packet_read = 1;
break; break;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment