]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/swf.h
examples/decode_video: switch to the new decoding API
[ffmpeg] / libavformat / swf.h
index dee69160cfcc62edd508cfe4f8c784422c92cc44..9b90251e9b57bf6eb4e2fd45b0702702d5de3683 100644 (file)
@@ -1,31 +1,38 @@
 /*
  * Flash Compatible Streaming Format common header.
- * Copyright (c) 2000 Fabrice Bellard.
- * Copyright (c) 2003 Tinic Uro.
+ * Copyright (c) 2000 Fabrice Bellard
+ * Copyright (c) 2003 Tinic Uro
  *
- * This file is part of FFmpeg.
+ * This file is part of Libav.
  *
- * FFmpeg is free software; you can redistribute it and/or
+ * Libav is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.
  *
- * FFmpeg is distributed in the hope that it will be useful,
+ * Libav is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
+ * License along with Libav; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#ifndef FFMPEG_SWF_H
-#define FFMPEG_SWF_H
+#ifndef AVFORMAT_SWF_H
+#define AVFORMAT_SWF_H
+
+#include "config.h"
+
+#if CONFIG_ZLIB
+#include <zlib.h>
+#endif
 
 #include "libavutil/fifo.h"
 #include "avformat.h"
-#include "riff.h"    /* for CodecTag */
+#include "avio.h"
+#include "internal.h"
 
 /* should have a generic way to indicate probable size */
 #define DUMMY_FILE_SIZE   (100 * 1024 * 1024)
 #define VIDEO_ID 0
 #define SHAPE_ID  1
 
-#undef NDEBUG
-#include <assert.h>
-
-typedef struct {
-    int audio_stream_index;
-    offset_t duration_pos;
-    offset_t tag_pos;
-
+typedef struct SWFContext {
+    int64_t duration_pos;
+    int64_t tag_pos;
+    int64_t vframes_pos;
     int samples_per_frame;
     int sound_samples;
     int swf_frame_number;
     int video_frame_number;
     int frame_rate;
     int tag;
-    AVFifoBuffer audio_fifo;
-    AVCodecContext *audio_enc, *video_enc;
+    AVFifoBuffer *audio_fifo;
+    AVCodecParameters *audio_par, *video_par;
+    AVStream *video_st;
+#if CONFIG_ZLIB
+#define ZBUF_SIZE 4096
+    AVIOContext *zpb;
+    uint8_t *zbuf_in;
+    uint8_t *zbuf_out;
+    z_stream zstream;
+#endif
 } SWFContext;
 
-static const AVCodecTag swf_codec_tags[] = {
-    {CODEC_ID_FLV1, 0x02},
-    {CODEC_ID_VP6F, 0x04},
-    {0, 0},
-};
-
-static const AVCodecTag swf_audio_codec_tags[] = {
-    {CODEC_ID_PCM_S16LE,  0x00},
-    {CODEC_ID_ADPCM_SWF,  0x01},
-    {CODEC_ID_MP3,        0x02},
-    {CODEC_ID_PCM_S16LE,  0x03},
-  //{CODEC_ID_NELLYMOSER, 0x06},
-    {0, 0},
-};
+extern const AVCodecTag ff_swf_codec_tags[];
 
-#endif /* FFMPEG_SWF_H */
+#endif /* AVFORMAT_SWF_H */