summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorPeter Ross <pross@xvid.org>2008-08-12 12:36:00 +0000
committerPeter Ross <pross@xvid.org>2008-08-12 12:36:00 +0000
commitebc22cc29f0bf9c87afbfef25e00338d92a9f0f3 (patch)
tree0ee9d7d788a11f49081827b84e654a3355ce40ec /libavformat
parent3b4b113781b6be5a6c03f41e8e26f44872b46316 (diff)
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
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/electronicarts.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c
index 2dc4f14bd2..7bc42805db 100644
--- a/libavformat/electronicarts.c
+++ b/libavformat/electronicarts.c
@@ -31,6 +31,9 @@
#define SEAD_TAG MKTAG('S', 'E', 'A', 'D') /* Sxxx header */
#define SNDC_TAG MKTAG('S', 'N', 'D', 'C') /* Sxxx data */
#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 EACS_TAG MKTAG('E', 'A', 'C', 'S')
#define ISNd_TAG MKTAG('1', 'S', 'N', 'd') /* 1SNx data */
@@ -304,6 +307,7 @@ static int process_ea_header(AVFormatContext *s) {
break;
case SCHl_TAG :
+ case SHEN_TAG :
blockid = get_le32(pb);
if (blockid == GSTR_TAG) {
url_fskip(pb, 4);
@@ -361,6 +365,7 @@ static int ea_probe(AVProbeData *p)
case ISNh_TAG:
case SCHl_TAG:
case SEAD_TAG:
+ case SHEN_TAG:
case kVGT_TAG:
case MADk_TAG:
case MPCh_TAG:
@@ -439,6 +444,7 @@ static int ea_read_packet(AVFormatContext *s,
case ISNd_TAG:
case SCDl_TAG:
case SNDC_TAG:
+ case SDEN_TAG:
if (!ea->audio_codec) {
url_fskip(pb, chunk_size);
break;
@@ -476,6 +482,7 @@ static int ea_read_packet(AVFormatContext *s,
case ISNe_TAG:
case SCEl_TAG:
case SEND_TAG:
+ case SEEN_TAG:
ret = AVERROR(EIO);
packet_read = 1;
break;