[FFmpeg-cvslog] r18351 - in trunk/libavcodec: 4xm.c 8bps.c 8svx.c aac.c aasc.c ac3dec.c adpcm.c adxdec.c alac.c apedec.c asv1.c atrac3.c avcodec.h avs.c bethsoftvideo.c bfi.c bmp.c c93.c cavsdec.c cinepak.c cljr.c...

rbultje subversion
Tue Apr 7 17:59:51 CEST 2009


Author: rbultje
Date: Tue Apr  7 17:59:50 2009
New Revision: 18351

Log:
Implement avcodec_decode_video2(), _audio3() and _subtitle2() which takes an
AVPacket argument rather than a const uint8_t *buf + int buf_size. This allows
passing of packet-specific flags from demuxer to decoder, such as the keyframe
flag, which appears necessary to playback corePNG P-frames.

Patch by Thilo Borgmann thilo.borgmann googlemail com, see also the thread
"Google Summer of Code participation" on the mailinglist.

Modified:
   trunk/libavcodec/4xm.c
   trunk/libavcodec/8bps.c
   trunk/libavcodec/8svx.c
   trunk/libavcodec/aac.c
   trunk/libavcodec/aasc.c
   trunk/libavcodec/ac3dec.c
   trunk/libavcodec/adpcm.c
   trunk/libavcodec/adxdec.c
   trunk/libavcodec/alac.c
   trunk/libavcodec/apedec.c
   trunk/libavcodec/asv1.c
   trunk/libavcodec/atrac3.c
   trunk/libavcodec/avcodec.h
   trunk/libavcodec/avs.c
   trunk/libavcodec/bethsoftvideo.c
   trunk/libavcodec/bfi.c
   trunk/libavcodec/bmp.c
   trunk/libavcodec/c93.c
   trunk/libavcodec/cavsdec.c
   trunk/libavcodec/cinepak.c
   trunk/libavcodec/cljr.c
   trunk/libavcodec/cook.c
   trunk/libavcodec/cscd.c
   trunk/libavcodec/cyuv.c
   trunk/libavcodec/dca.c
   trunk/libavcodec/dnxhddec.c
   trunk/libavcodec/dpcm.c
   trunk/libavcodec/dsicinav.c
   trunk/libavcodec/dv.c
   trunk/libavcodec/dvbsubdec.c
   trunk/libavcodec/dvdsubdec.c
   trunk/libavcodec/dxa.c
   trunk/libavcodec/eacmv.c
   trunk/libavcodec/eatgq.c
   trunk/libavcodec/eatgv.c
   trunk/libavcodec/eatqi.c
   trunk/libavcodec/escape124.c
   trunk/libavcodec/ffv1.c
   trunk/libavcodec/flacdec.c
   trunk/libavcodec/flashsv.c
   trunk/libavcodec/flicvideo.c
   trunk/libavcodec/fraps.c
   trunk/libavcodec/g726.c
   trunk/libavcodec/gifdec.c
   trunk/libavcodec/h261dec.c
   trunk/libavcodec/h263dec.c
   trunk/libavcodec/h264.c
   trunk/libavcodec/huffyuv.c
   trunk/libavcodec/idcinvideo.c
   trunk/libavcodec/imc.c
   trunk/libavcodec/indeo2.c
   trunk/libavcodec/indeo3.c
   trunk/libavcodec/interplayvideo.c
   trunk/libavcodec/kmvc.c
   trunk/libavcodec/lcldec.c
   trunk/libavcodec/libamr.c
   trunk/libavcodec/libdiracdec.c
   trunk/libavcodec/libfaad.c
   trunk/libavcodec/libgsm.c
   trunk/libavcodec/libopenjpeg.c
   trunk/libavcodec/libschroedingerdec.c
   trunk/libavcodec/libspeexdec.c
   trunk/libavcodec/loco.c
   trunk/libavcodec/mace.c
   trunk/libavcodec/mdec.c
   trunk/libavcodec/mimic.c
   trunk/libavcodec/mjpegbdec.c
   trunk/libavcodec/mjpegdec.c
   trunk/libavcodec/mjpegdec.h
   trunk/libavcodec/mlpdec.c
   trunk/libavcodec/mmvideo.c
   trunk/libavcodec/motionpixels.c
   trunk/libavcodec/mpc7.c
   trunk/libavcodec/mpc8.c
   trunk/libavcodec/mpeg12.c
   trunk/libavcodec/mpegaudiodec.c
   trunk/libavcodec/mpegvideo.h
   trunk/libavcodec/msrle.c
   trunk/libavcodec/msvideo1.c
   trunk/libavcodec/nellymoserdec.c
   trunk/libavcodec/nuv.c
   trunk/libavcodec/pcm.c
   trunk/libavcodec/pcx.c
   trunk/libavcodec/pngdec.c
   trunk/libavcodec/pnmenc.c
   trunk/libavcodec/ptx.c
   trunk/libavcodec/qcelpdec.c
   trunk/libavcodec/qdm2.c
   trunk/libavcodec/qdrw.c
   trunk/libavcodec/qpeg.c
   trunk/libavcodec/qtrle.c
   trunk/libavcodec/ra144.c
   trunk/libavcodec/ra288.c
   trunk/libavcodec/rawdec.c
   trunk/libavcodec/rl2.c
   trunk/libavcodec/roqvideodec.c
   trunk/libavcodec/rpza.c
   trunk/libavcodec/rv10.c
   trunk/libavcodec/rv34.c
   trunk/libavcodec/rv34.h
   trunk/libavcodec/sgidec.c
   trunk/libavcodec/shorten.c
   trunk/libavcodec/smacker.c
   trunk/libavcodec/smc.c
   trunk/libavcodec/snow.c
   trunk/libavcodec/sonic.c
   trunk/libavcodec/sp5xdec.c
   trunk/libavcodec/sunrast.c
   trunk/libavcodec/svq1dec.c
   trunk/libavcodec/svq3.c
   trunk/libavcodec/targa.c
   trunk/libavcodec/tiertexseqv.c
   trunk/libavcodec/tiff.c
   trunk/libavcodec/truemotion1.c
   trunk/libavcodec/truemotion2.c
   trunk/libavcodec/truespeech.c
   trunk/libavcodec/tscc.c
   trunk/libavcodec/tta.c
   trunk/libavcodec/txd.c
   trunk/libavcodec/ulti.c
   trunk/libavcodec/utils.c
   trunk/libavcodec/vb.c
   trunk/libavcodec/vc1.c
   trunk/libavcodec/vcr1.c
   trunk/libavcodec/vmdav.c
   trunk/libavcodec/vmnc.c
   trunk/libavcodec/vorbis_dec.c
   trunk/libavcodec/vp3.c
   trunk/libavcodec/vqavideo.c
   trunk/libavcodec/wavpack.c
   trunk/libavcodec/wmadec.c
   trunk/libavcodec/wnv1.c
   trunk/libavcodec/ws-snd1.c
   trunk/libavcodec/xan.c
   trunk/libavcodec/xl.c
   trunk/libavcodec/xsubdec.c
   trunk/libavcodec/zmbv.c

Modified: trunk/libavcodec/4xm.c
==============================================================================
--- trunk/libavcodec/4xm.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/4xm.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -677,8 +677,10 @@ static int decode_i_frame(FourXContext *
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     FourXContext * const f = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame *p, temp;

Modified: trunk/libavcodec/8bps.c
==============================================================================
--- trunk/libavcodec/8bps.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/8bps.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -58,8 +58,10 @@ typedef struct EightBpsContext {
  * Decode a frame
  *
  */
-static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
+static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
 {
+        const uint8_t *buf = avpkt->data;
+        int buf_size = avpkt->size;
         EightBpsContext * const c = avctx->priv_data;
         const unsigned char *encoded = buf;
         unsigned char *pixptr, *pixptr_end;

Modified: trunk/libavcodec/8svx.c
==============================================================================
--- trunk/libavcodec/8svx.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/8svx.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -42,8 +42,10 @@ static const int16_t exponential[16] = {
 
 /** decode a frame */
 static int eightsvx_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
-                                 const uint8_t *buf, int buf_size)
+                                 AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     EightSvxContext *esc = avctx->priv_data;
     int16_t *out_data = data;
     int consumed = buf_size;

Modified: trunk/libavcodec/aac.c
==============================================================================
--- trunk/libavcodec/aac.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/aac.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -1604,7 +1604,9 @@ static int parse_adts_frame_header(AACCo
     return size;
 }
 
-static int aac_decode_frame(AVCodecContext * avccontext, void * data, int * data_size, const uint8_t * buf, int buf_size) {
+static int aac_decode_frame(AVCodecContext * avccontext, void * data, int * data_size, AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     AACContext * ac = avccontext->priv_data;
     ChannelElement * che = NULL;
     GetBitContext gb;

Modified: trunk/libavcodec/aasc.c
==============================================================================
--- trunk/libavcodec/aasc.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/aasc.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -59,8 +59,10 @@ static av_cold int aasc_decode_init(AVCo
 
 static int aasc_decode_frame(AVCodecContext *avctx,
                               void *data, int *data_size,
-                              const uint8_t *buf, int buf_size)
+                              AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     AascContext *s = avctx->priv_data;
     int compr, i, stride;
 

Modified: trunk/libavcodec/ac3dec.c
==============================================================================
--- trunk/libavcodec/ac3dec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/ac3dec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -1226,8 +1226,10 @@ static int decode_audio_block(AC3DecodeC
  * Decode a single AC-3 frame.
  */
 static int ac3_decode_frame(AVCodecContext * avctx, void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     AC3DecodeContext *s = avctx->priv_data;
     int16_t *out_samples = (int16_t *)data;
     int blk, ch, err;

Modified: trunk/libavcodec/adpcm.c
==============================================================================
--- trunk/libavcodec/adpcm.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/adpcm.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -877,8 +877,10 @@ static void xa_decode(short *out, const 
 
 static int adpcm_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     ADPCMContext *c = avctx->priv_data;
     ADPCMChannelStatus *cs;
     int n, m, channel, i;

Modified: trunk/libavcodec/adxdec.c
==============================================================================
--- trunk/libavcodec/adxdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/adxdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -104,8 +104,10 @@ static int adx_decode_header(AVCodecCont
 
 static int adx_decode_frame(AVCodecContext *avctx,
                 void *data, int *data_size,
-                const uint8_t *buf0, int buf_size)
+                AVPacket *avpkt)
 {
+    const uint8_t *buf0 = avpkt->data;
+    int buf_size = avpkt->size;
     ADXContext *c = avctx->priv_data;
     short *samples = data;
     const uint8_t *buf = buf0;

Modified: trunk/libavcodec/alac.c
==============================================================================
--- trunk/libavcodec/alac.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/alac.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -400,8 +400,10 @@ static void reconstruct_stereo_16(int32_
 
 static int alac_decode_frame(AVCodecContext *avctx,
                              void *outbuffer, int *outputsize,
-                             const uint8_t *inbuffer, int input_buffer_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *inbuffer = avpkt->data;
+    int input_buffer_size = avpkt->size;
     ALACContext *alac = avctx->priv_data;
 
     int channels;

Modified: trunk/libavcodec/apedec.c
==============================================================================
--- trunk/libavcodec/apedec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/apedec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -806,8 +806,10 @@ static void ape_unpack_stereo(APEContext
 
 static int ape_decode_frame(AVCodecContext * avctx,
                             void *data, int *data_size,
-                            const uint8_t * buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     APEContext *s = avctx->priv_data;
     int16_t *samples = data;
     int nblocks;

Modified: trunk/libavcodec/asv1.c
==============================================================================
--- trunk/libavcodec/asv1.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/asv1.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -387,8 +387,10 @@ static inline void dct_get(ASV1Context *
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     ASV1Context * const a = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p= (AVFrame*)&a->picture;

Modified: trunk/libavcodec/atrac3.c
==============================================================================
--- trunk/libavcodec/atrac3.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/atrac3.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -878,7 +878,9 @@ static int decodeFrame(ATRAC3Context *q,
 
 static int atrac3_decode_frame(AVCodecContext *avctx,
             void *data, int *data_size,
-            const uint8_t *buf, int buf_size) {
+            AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     ATRAC3Context *q = avctx->priv_data;
     int result = 0, i;
     const uint8_t* databuf;

Modified: trunk/libavcodec/avcodec.h
==============================================================================
--- trunk/libavcodec/avcodec.h	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/avcodec.h	Tue Apr  7 17:59:50 2009	(r18351)
@@ -2429,8 +2429,7 @@ typedef struct AVCodec {
     int (*init)(AVCodecContext *);
     int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
     int (*close)(AVCodecContext *);
-    int (*decode)(AVCodecContext *, void *outdata, int *outdata_size,
-                  const uint8_t *buf, int buf_size);
+    int (*decode)(AVCodecContext *, void *outdata, int *outdata_size, AVPacket *avpkt);
     /**
      * Codec capabilities.
      * see CODEC_CAP_*
@@ -3020,26 +3019,45 @@ int avcodec_default_execute(AVCodecConte
  */
 int avcodec_open(AVCodecContext *avctx, AVCodec *codec);
 
+#if LIBAVCODEC_VERSION_MAJOR < 53
 /**
  * Decodes an audio frame from \p buf into \p samples.
- * The avcodec_decode_audio2() function decodes an audio frame from the input
- * buffer \p buf of size \p buf_size. To decode it, it makes use of the
+ * Wrapper function which calls avcodec_decode_audio3.
+ *
+ * @deprecated Use avcodec_decode_audio3 instead.
+ * @param avctx the codec context
+ * @param[out] samples the output buffer
+ * @param[in,out] frame_size_ptr the output buffer size in bytes
+ * @param[in] buf the input buffer
+ * @param[in] buf_size the input buffer size in bytes
+ * @return On error a negative value is returned, otherwise the number of bytes
+ * used or zero if no frame could be decompressed.
+ */
+attribute_deprecated int avcodec_decode_audio2(AVCodecContext *avctx, int16_t *samples,
+                         int *frame_size_ptr,
+                         const uint8_t *buf, int buf_size);
+#endif
+
+/**
+ * Decodes an audio frame from \p avpkt->data into \p samples.
+ * The avcodec_decode_audio3() function decodes an audio frame from the input
+ * buffer \p avpkt->data of size \p avpkt->size. To decode it, it makes use of the
  * audio codec which was coupled with \p avctx using avcodec_open(). The
  * resulting decoded frame is stored in output buffer \p samples.  If no frame
  * could be decompressed, \p frame_size_ptr is zero. Otherwise, it is the
  * decompressed frame size in \e bytes.
  *
  * @warning You \e must set \p frame_size_ptr to the allocated size of the
- * output buffer before calling avcodec_decode_audio2().
+ * output buffer before calling avcodec_decode_audio3().
  *
  * @warning The input buffer must be \c FF_INPUT_BUFFER_PADDING_SIZE larger than
  * the actual read bytes because some optimized bitstream readers read 32 or 64
  * bits at once and could read over the end.
  *
- * @warning The end of the input buffer \p buf should be set to 0 to ensure that
+ * @warning The end of the input buffer \p avpkt->data should be set to 0 to ensure that
  * no overreading happens for damaged MPEG streams.
  *
- * @note You might have to align the input buffer \p buf and output buffer \p
+ * @note You might have to align the input buffer \p avpkt->data and output buffer \p
  * samples. The alignment requirements depend on the CPU: On some CPUs it isn't
  * necessary at all, on others it won't work at all if not aligned and on others
  * it will work but it will have an impact on performance. In practice, the
@@ -3051,19 +3069,37 @@ int avcodec_open(AVCodecContext *avctx, 
  * @param avctx the codec context
  * @param[out] samples the output buffer
  * @param[in,out] frame_size_ptr the output buffer size in bytes
- * @param[in] buf the input buffer
- * @param[in] buf_size the input buffer size in bytes
+ * @param[in] avpkt The input AVPacket containing the input buffer.
  * @return On error a negative value is returned, otherwise the number of bytes
  * used or zero if no frame could be decompressed.
  */
-int avcodec_decode_audio2(AVCodecContext *avctx, int16_t *samples,
+int avcodec_decode_audio3(AVCodecContext *avctx, int16_t *samples,
                          int *frame_size_ptr,
-                         const uint8_t *buf, int buf_size);
+                         AVPacket *avpkt);
 
+#if LIBAVCODEC_VERSION_MAJOR < 53
 /**
  * Decodes a video frame from \p buf into \p picture.
- * The avcodec_decode_video() function decodes a video frame from the input
- * buffer \p buf of size \p buf_size. To decode it, it makes use of the
+ * Wrapper function which calls avcodec_decode_video2.
+ *
+ * @deprecated Use avcodec_decode_video2 instead.
+ * @param avctx the codec context
+ * @param[out] picture The AVFrame in which the decoded video frame will be stored.
+ * @param[in] buf the input buffer
+ * @param[in] buf_size the size of the input buffer in bytes
+ * @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero.
+ * @return On error a negative value is returned, otherwise the number of bytes
+ * used or zero if no frame could be decompressed.
+ */
+attribute_deprecated int avcodec_decode_video(AVCodecContext *avctx, AVFrame *picture,
+                         int *got_picture_ptr,
+                         const uint8_t *buf, int buf_size);
+#endif
+
+/**
+ * Decodes a video frame from \p avpkt->data into \p picture.
+ * The avcodec_decode_video2() function decodes a video frame from the input
+ * buffer \p avpkt->data of size \p avpkt->size. To decode it, it makes use of the
  * video codec which was coupled with \p avctx using avcodec_open(). The
  * resulting decoded frame is stored in \p picture.
  *
@@ -3074,7 +3110,7 @@ int avcodec_decode_audio2(AVCodecContext
  * @warning The end of the input buffer \p buf should be set to 0 to ensure that
  * no overreading happens for damaged MPEG streams.
  *
- * @note You might have to align the input buffer \p buf and output buffer \p
+ * @note You might have to align the input buffer \p avpkt->data and output buffer \p
  * samples. The alignment requirements depend on the CPU: on some CPUs it isn't
  * necessary at all, on others it won't work at all if not aligned and on others
  * it will work but it will have an impact on performance. In practice, the
@@ -3084,26 +3120,42 @@ int avcodec_decode_audio2(AVCodecContext
  * start of the buffer to 16.
  *
  * @note Some codecs have a delay between input and output, these need to be
- * feeded with buf=NULL, buf_size=0 at the end to return the remaining frames.
+ * feeded with avpkt->data=NULL, avpkt->size=0 at the end to return the remaining frames.
  *
  * @param avctx the codec context
  * @param[out] picture The AVFrame in which the decoded video frame will be stored.
- * @param[in] buf the input buffer
- * @param[in] buf_size the size of the input buffer in bytes
+ * @param[in] avpkt The input AVpacket containing the input buffer.
  * @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero.
  * @return On error a negative value is returned, otherwise the number of bytes
  * used or zero if no frame could be decompressed.
  */
-int avcodec_decode_video(AVCodecContext *avctx, AVFrame *picture,
+int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
                          int *got_picture_ptr,
-                         const uint8_t *buf, int buf_size);
+                         AVPacket *avpkt);
 
+#if LIBAVCODEC_VERSION_MAJOR < 53
 /* Decode a subtitle message. Return -1 if error, otherwise return the
  * number of bytes used. If no subtitle could be decompressed,
  * got_sub_ptr is zero. Otherwise, the subtitle is stored in *sub. */
-int avcodec_decode_subtitle(AVCodecContext *avctx, AVSubtitle *sub,
+attribute_deprecated int avcodec_decode_subtitle(AVCodecContext *avctx, AVSubtitle *sub,
                             int *got_sub_ptr,
                             const uint8_t *buf, int buf_size);
+#endif
+
+/**
+ * Decodes a subtitle message.
+ * Returns -1 if error, otherwise returns the number of bytes used.
+ * If no subtitle could be decompressed, \p got_sub_ptr is zero.
+ * Otherwise, the subtitle is stored in \p *sub.
+ *
+ * @param avctx the codec context
+ * @param[out] sub The AVSubtitle in which the decoded subtitle will be stored.
+ * @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed, otherwise, it is nonzero.
+ * @param[in] avpkt The input AVPacket containing the input buffer.
+ */
+int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
+                            int *got_sub_ptr,
+                            AVPacket *avpkt);
 int avcodec_parse_frame(AVCodecContext *avctx, uint8_t **pdata,
                         int *data_size_ptr,
                         uint8_t *buf, int buf_size);

Modified: trunk/libavcodec/avs.c
==============================================================================
--- trunk/libavcodec/avs.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/avs.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -44,8 +44,10 @@ typedef enum {
 
 static int
 avs_decode_frame(AVCodecContext * avctx,
-                 void *data, int *data_size, const uint8_t * buf, int buf_size)
+                 void *data, int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     AvsContext *const avs = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame *const p = (AVFrame *) & avs->picture;

Modified: trunk/libavcodec/bethsoftvideo.c
==============================================================================
--- trunk/libavcodec/bethsoftvideo.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/bethsoftvideo.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -58,8 +58,10 @@ static void set_palette(AVFrame * frame,
 
 static int bethsoftvid_decode_frame(AVCodecContext *avctx,
                               void *data, int *data_size,
-                              const uint8_t *buf, int buf_size)
+                              AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     BethsoftvidContext * vid = avctx->priv_data;
     char block_type;
     uint8_t * dst;

Modified: trunk/libavcodec/bfi.c
==============================================================================
--- trunk/libavcodec/bfi.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/bfi.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -45,9 +45,10 @@ static av_cold int bfi_decode_init(AVCod
 }
 
 static int bfi_decode_frame(AVCodecContext * avctx, void *data,
-                            int *data_size, const uint8_t * buf,
-                            int buf_size)
+                            int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     BFIContext *bfi = avctx->priv_data;
     uint8_t *dst = bfi->dst;
     uint8_t *src, *dst_offset, colour1, colour2;

Modified: trunk/libavcodec/bmp.c
==============================================================================
--- trunk/libavcodec/bmp.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/bmp.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -35,8 +35,10 @@ static av_cold int bmp_decode_init(AVCod
 
 static int bmp_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     BMPContext *s = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame *p = &s->picture;

Modified: trunk/libavcodec/c93.c
==============================================================================
--- trunk/libavcodec/c93.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/c93.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -113,8 +113,10 @@ static inline void draw_n_color(uint8_t 
 }
 
 static int decode_frame(AVCodecContext *avctx, void *data,
-                            int *data_size, const uint8_t * buf, int buf_size)
+                            int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     C93DecoderContext * const c93 = avctx->priv_data;
     AVFrame * const newpic = &c93->pictures[c93->currentpic];
     AVFrame * const oldpic = &c93->pictures[c93->currentpic^1];

Modified: trunk/libavcodec/cavsdec.c
==============================================================================
--- trunk/libavcodec/cavsdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/cavsdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -625,7 +625,9 @@ static void cavs_flush(AVCodecContext * 
 }
 
 static int cavs_decode_frame(AVCodecContext * avctx,void *data, int *data_size,
-                             const uint8_t * buf, int buf_size) {
+                             AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     AVSContext *h = avctx->priv_data;
     MpegEncContext *s = &h->s;
     int input_size;

Modified: trunk/libavcodec/cinepak.c
==============================================================================
--- trunk/libavcodec/cinepak.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/cinepak.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -411,8 +411,10 @@ static av_cold int cinepak_decode_init(A
 
 static int cinepak_decode_frame(AVCodecContext *avctx,
                                 void *data, int *data_size,
-                                const uint8_t *buf, int buf_size)
+                                AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     CinepakContext *s = avctx->priv_data;
 
     s->data = buf;

Modified: trunk/libavcodec/cljr.c
==============================================================================
--- trunk/libavcodec/cljr.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/cljr.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -42,8 +42,10 @@ typedef struct CLJRContext{
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     CLJRContext * const a = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p= (AVFrame*)&a->picture;

Modified: trunk/libavcodec/cook.c
==============================================================================
--- trunk/libavcodec/cook.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/cook.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -979,7 +979,9 @@ static int decode_subpacket(COOKContext 
 
 static int cook_decode_frame(AVCodecContext *avctx,
             void *data, int *data_size,
-            const uint8_t *buf, int buf_size) {
+            AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     COOKContext *q = avctx->priv_data;
 
     if (buf_size < avctx->block_align)

Modified: trunk/libavcodec/cscd.c
==============================================================================
--- trunk/libavcodec/cscd.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/cscd.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -135,7 +135,9 @@ static void add_frame_32(AVFrame *f, con
 #endif
 
 static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
-                        const uint8_t *buf, int buf_size) {
+                        AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     CamStudioContext *c = avctx->priv_data;
     AVFrame *picture = data;
 

Modified: trunk/libavcodec/cyuv.c
==============================================================================
--- trunk/libavcodec/cyuv.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/cyuv.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -60,8 +60,10 @@ static av_cold int cyuv_decode_init(AVCo
 
 static int cyuv_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     CyuvDecodeContext *s=avctx->priv_data;
 
     unsigned char *y_plane;

Modified: trunk/libavcodec/dca.c
==============================================================================
--- trunk/libavcodec/dca.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/dca.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -1209,8 +1209,10 @@ static int dca_convert_bitstream(const u
  */
 static int dca_decode_frame(AVCodecContext * avctx,
                             void *data, int *data_size,
-                            const uint8_t * buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
 
     int i;
     int16_t *samples = data;

Modified: trunk/libavcodec/dnxhddec.c
==============================================================================
--- trunk/libavcodec/dnxhddec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/dnxhddec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -278,8 +278,10 @@ static int dnxhd_decode_macroblocks(DNXH
 }
 
 static int dnxhd_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
-                              const uint8_t *buf, int buf_size)
+                              AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     DNXHDContext *ctx = avctx->priv_data;
     AVFrame *picture = data;
     int first_field = 1;

Modified: trunk/libavcodec/dpcm.c
==============================================================================
--- trunk/libavcodec/dpcm.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/dpcm.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -161,8 +161,10 @@ static av_cold int dpcm_decode_init(AVCo
 
 static int dpcm_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     DPCMContext *s = avctx->priv_data;
     int in, out = 0;
     int predictor[2];

Modified: trunk/libavcodec/dsicinav.c
==============================================================================
--- trunk/libavcodec/dsicinav.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/dsicinav.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -195,8 +195,10 @@ static void cin_decode_rle(const unsigne
 
 static int cinvideo_decode_frame(AVCodecContext *avctx,
                                  void *data, int *data_size,
-                                 const uint8_t *buf, int buf_size)
+                                 AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     CinVideoContext *cin = avctx->priv_data;
     int i, y, palette_type, palette_colors_count, bitmap_frame_type, bitmap_frame_size;
 
@@ -312,8 +314,10 @@ static av_cold int cinaudio_decode_init(
 
 static int cinaudio_decode_frame(AVCodecContext *avctx,
                                  void *data, int *data_size,
-                                 const uint8_t *buf, int buf_size)
+                                 AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     CinAudioContext *cin = avctx->priv_data;
     const uint8_t *src = buf;
     int16_t *samples = (int16_t *)data;

Modified: trunk/libavcodec/dv.c
==============================================================================
--- trunk/libavcodec/dv.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/dv.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -1111,8 +1111,10 @@ static int dv_encode_video_segment(AVCod
    144000 bytes for PAL - or twice those for 50Mbps) */
 static int dvvideo_decode_frame(AVCodecContext *avctx,
                                  void *data, int *data_size,
-                                 const uint8_t *buf, int buf_size)
+                                 AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     DVVideoContext *s = avctx->priv_data;
 
     s->sys = dv_frame_profile(buf);

Modified: trunk/libavcodec/dvbsubdec.c
==============================================================================
--- trunk/libavcodec/dvbsubdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/dvbsubdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -1345,8 +1345,10 @@ static int dvbsub_display_end_segment(AV
 
 static int dvbsub_decode(AVCodecContext *avctx,
                          void *data, int *data_size,
-                         const uint8_t *buf, int buf_size)
+                         AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     DVBSubContext *ctx = (DVBSubContext*) avctx->priv_data;
     AVSubtitle *sub = (AVSubtitle*) data;
     const uint8_t *p, *p_end;

Modified: trunk/libavcodec/dvdsubdec.c
==============================================================================
--- trunk/libavcodec/dvdsubdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/dvdsubdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -475,8 +475,10 @@ static void ppm_save(const char *filenam
 
 static int dvdsub_decode(AVCodecContext *avctx,
                          void *data, int *data_size,
-                         const uint8_t *buf, int buf_size)
+                         AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     AVSubtitle *sub = (void *)data;
     int is_menu;
 

Modified: trunk/libavcodec/dxa.c
==============================================================================
--- trunk/libavcodec/dxa.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/dxa.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -188,8 +188,10 @@ static int decode_13(AVCodecContext *avc
     return 0;
 }
 
-static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
+static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     DxaDecContext * const c = avctx->priv_data;
     uint8_t *outptr, *srcptr, *tmpptr;
     unsigned long dsize;

Modified: trunk/libavcodec/eacmv.c
==============================================================================
--- trunk/libavcodec/eacmv.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/eacmv.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -144,8 +144,10 @@ static void cmv_process_header(CmvContex
 
 static int cmv_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     CmvContext *s = avctx->priv_data;
     const uint8_t *buf_end = buf + buf_size;
 

Modified: trunk/libavcodec/eatgq.c
==============================================================================
--- trunk/libavcodec/eatgq.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/eatgq.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -190,7 +190,9 @@ static void tgq_calculate_qtable(TgqCont
 
 static int tgq_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size){
+                            AVPacket *avpkt){
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     const uint8_t *buf_start = buf;
     const uint8_t *buf_end = buf + buf_size;
     TgqContext *s = avctx->priv_data;

Modified: trunk/libavcodec/eatgv.c
==============================================================================
--- trunk/libavcodec/eatgv.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/eatgv.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -237,8 +237,10 @@ static void cond_release_buffer(AVFrame 
 
 static int tgv_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     TgvContext *s = avctx->priv_data;
     const uint8_t *buf_end = buf + buf_size;
     int chunk_type;

Modified: trunk/libavcodec/eatqi.c
==============================================================================
--- trunk/libavcodec/eatqi.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/eatqi.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -101,8 +101,10 @@ static void tqi_calculate_qtable(MpegEnc
 
 static int tqi_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     const uint8_t *buf_end = buf+buf_size;
     TqiContext *t = avctx->priv_data;
     MpegEncContext *s = &t->s;

Modified: trunk/libavcodec/escape124.c
==============================================================================
--- trunk/libavcodec/escape124.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/escape124.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -206,8 +206,10 @@ static const uint16_t mask_matrix[] = {0
  */
 static int escape124_decode_frame(AVCodecContext *avctx,
                                   void *data, int *data_size,
-                                  const uint8_t *buf, int buf_size)
+                                  AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     Escape124Context *s = avctx->priv_data;
 
     GetBitContext gb;

Modified: trunk/libavcodec/ffv1.c
==============================================================================
--- trunk/libavcodec/ffv1.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/ffv1.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -936,7 +936,9 @@ static av_cold int decode_init(AVCodecCo
     return 0;
 }
 
-static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size){
+static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt){
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     FFV1Context *f = avctx->priv_data;
     RangeCoder * const c= &f->c;
     const int width= f->width;

Modified: trunk/libavcodec/flacdec.c
==============================================================================
--- trunk/libavcodec/flacdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/flacdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -636,8 +636,10 @@ static int decode_frame(FLACContext *s)
 
 static int flac_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     FLACContext *s = avctx->priv_data;
     int i, j = 0, input_buf_size = 0, bytes_read = 0;
     int16_t *samples_16 = data;

Modified: trunk/libavcodec/flashsv.c
==============================================================================
--- trunk/libavcodec/flashsv.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/flashsv.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -102,8 +102,10 @@ static av_cold int flashsv_decode_init(A
 
 static int flashsv_decode_frame(AVCodecContext *avctx,
                                     void *data, int *data_size,
-                                    const uint8_t *buf, int buf_size)
+                                    AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     FlashSVContext *s = avctx->priv_data;
     int h_blocks, v_blocks, h_part, v_part, i, j;
     GetBitContext gb;

Modified: trunk/libavcodec/flicvideo.c
==============================================================================
--- trunk/libavcodec/flicvideo.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/flicvideo.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -701,8 +701,10 @@ static int flic_decode_frame_24BPP(AVCod
 
 static int flic_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     if (avctx->pix_fmt == PIX_FMT_PAL8) {
       return flic_decode_frame_8BPP(avctx, data, data_size,
                                     buf, buf_size);

Modified: trunk/libavcodec/fraps.c
==============================================================================
--- trunk/libavcodec/fraps.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/fraps.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -130,8 +130,10 @@ static int fraps2_decode_plane(FrapsCont
  */
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     FrapsContext * const s = avctx->priv_data;
     AVFrame *frame = data;
     AVFrame * const f = (AVFrame*)&s->frame;

Modified: trunk/libavcodec/g726.c
==============================================================================
--- trunk/libavcodec/g726.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/g726.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -363,8 +363,10 @@ static int g726_encode_frame(AVCodecCont
 
 static int g726_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     G726Context *c = avctx->priv_data;
     short *samples = data;
     GetBitContext gb;

Modified: trunk/libavcodec/gifdec.c
==============================================================================
--- trunk/libavcodec/gifdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/gifdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -282,8 +282,10 @@ static av_cold int gif_decode_init(AVCod
     return 0;
 }
 
-static int gif_decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
+static int gif_decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     GifState *s = avctx->priv_data;
     AVFrame *picture = data;
     int ret;

Modified: trunk/libavcodec/h261dec.c
==============================================================================
--- trunk/libavcodec/h261dec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/h261dec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -543,8 +543,10 @@ static int get_consumed_bytes(MpegEncCon
 
 static int h261_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     H261Context *h= avctx->priv_data;
     MpegEncContext *s = &h->s;
     int ret;

Modified: trunk/libavcodec/h263dec.c
==============================================================================
--- trunk/libavcodec/h263dec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/h263dec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -331,8 +331,10 @@ static int decode_slice(MpegEncContext *
 
 int ff_h263_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MpegEncContext *s = avctx->priv_data;
     int ret;
     AVFrame *pict = data;

Modified: trunk/libavcodec/h264.c
==============================================================================
--- trunk/libavcodec/h264.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/h264.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -7618,8 +7618,10 @@ static int get_consumed_bytes(MpegEncCon
 
 static int decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     H264Context *h = avctx->priv_data;
     MpegEncContext *s = &h->s;
     AVFrame *pict = data;

Modified: trunk/libavcodec/huffyuv.c
==============================================================================
--- trunk/libavcodec/huffyuv.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/huffyuv.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -942,7 +942,9 @@ static void draw_slice(HYuvContext *s, i
     s->last_slice_end= y + h;
 }
 
-static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size){
+static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt){
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     HYuvContext *s = avctx->priv_data;
     const int width= s->width;
     const int width2= s->width>>1;

Modified: trunk/libavcodec/idcinvideo.c
==============================================================================
--- trunk/libavcodec/idcinvideo.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/idcinvideo.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -209,8 +209,10 @@ static void idcin_decode_vlcs(IdcinConte
 
 static int idcin_decode_frame(AVCodecContext *avctx,
                               void *data, int *data_size,
-                              const uint8_t *buf, int buf_size)
+                              AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     IdcinContext *s = avctx->priv_data;
     AVPaletteControl *palette_control = avctx->palctrl;
 

Modified: trunk/libavcodec/imc.c
==============================================================================
--- trunk/libavcodec/imc.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/imc.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -639,8 +639,10 @@ static int imc_get_coeffs (IMCContext* q
 
 static int imc_decode_frame(AVCodecContext * avctx,
                             void *data, int *data_size,
-                            const uint8_t * buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
 
     IMCContext *q = avctx->priv_data;
 

Modified: trunk/libavcodec/indeo2.c
==============================================================================
--- trunk/libavcodec/indeo2.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/indeo2.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -136,8 +136,10 @@ static int ir2_decode_plane_inter(Ir2Con
 
 static int ir2_decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     Ir2Context * const s = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p= (AVFrame*)&s->picture;

Modified: trunk/libavcodec/indeo3.c
==============================================================================
--- trunk/libavcodec/indeo3.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/indeo3.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -1062,8 +1062,10 @@ static int iv_decode_frame(Indeo3DecodeC
 
 static int indeo3_decode_frame(AVCodecContext *avctx,
                                void *data, int *data_size,
-                               const uint8_t *buf, int buf_size)
+                               AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     Indeo3DecodeContext *s=avctx->priv_data;
     uint8_t *src, *dest;
     int y;

Modified: trunk/libavcodec/interplayvideo.c
==============================================================================
--- trunk/libavcodec/interplayvideo.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/interplayvideo.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -639,8 +639,10 @@ static av_cold int ipvideo_decode_init(A
 
 static int ipvideo_decode_frame(AVCodecContext *avctx,
                                 void *data, int *data_size,
-                                const uint8_t *buf, int buf_size)
+                                AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     IpvideoContext *s = avctx->priv_data;
     AVPaletteControl *palette_control = avctx->palctrl;
 

Modified: trunk/libavcodec/kmvc.c
==============================================================================
--- trunk/libavcodec/kmvc.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/kmvc.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -224,9 +224,10 @@ static void kmvc_decode_inter_8x8(KmvcCo
         }
 }
 
-static int decode_frame(AVCodecContext * avctx, void *data, int *data_size, const uint8_t * buf,
-                        int buf_size)
+static int decode_frame(AVCodecContext * avctx, void *data, int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     KmvcContext *const ctx = avctx->priv_data;
     uint8_t *out, *src;
     int i;

Modified: trunk/libavcodec/lcldec.c
==============================================================================
--- trunk/libavcodec/lcldec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/lcldec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -161,8 +161,10 @@ static unsigned int mszh_decomp(unsigned
  * Decode a frame
  *
  */
-static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
+static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     LclDecContext * const c = avctx->priv_data;
     unsigned char *encoded = (unsigned char *)buf;
     unsigned int pixel_ptr;

Modified: trunk/libavcodec/libamr.c
==============================================================================
--- trunk/libavcodec/libamr.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/libamr.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -245,8 +245,10 @@ static av_cold int amr_nb_decode_close(A
 
 static int amr_nb_decode_frame(AVCodecContext * avctx,
             void *data, int *data_size,
-            const uint8_t * buf, int buf_size)
+            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     AMRContext *s = avctx->priv_data;
     const uint8_t*amrData=buf;
     int offset=0;
@@ -654,8 +656,10 @@ static int amr_wb_decode_init(AVCodecCon
 
 static int amr_wb_decode_frame(AVCodecContext * avctx,
             void *data, int *data_size,
-            const uint8_t * buf, int buf_size)
+            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     AMRWBContext *s = avctx->priv_data;
     const uint8_t*amrData=buf;
     int mode;

Modified: trunk/libavcodec/libdiracdec.c
==============================================================================
--- trunk/libavcodec/libdiracdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/libdiracdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -77,8 +77,10 @@ static av_cold int libdirac_decode_init(
 
 static int libdirac_decode_frame(AVCodecContext *avccontext,
                                  void *data, int *data_size,
-                                 const uint8_t *buf, int buf_size)
+                                 AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
 
     FfmpegDiracDecoderParams *p_dirac_params = avccontext->priv_data;
     AVPicture *picture = data;

Modified: trunk/libavcodec/libfaad.c
==============================================================================
--- trunk/libavcodec/libfaad.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/libfaad.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -149,8 +149,10 @@ static av_cold int faac_init_mp4(AVCodec
 
 static int faac_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     FAACContext *s = avctx->priv_data;
 #ifndef FAAD2_VERSION
     unsigned long bytesconsumed;

Modified: trunk/libavcodec/libgsm.c
==============================================================================
--- trunk/libavcodec/libgsm.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/libgsm.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -138,7 +138,9 @@ AVCodec libgsm_ms_encoder = {
 
 static int libgsm_decode_frame(AVCodecContext *avctx,
                                void *data, int *data_size,
-                               uint8_t *buf, int buf_size) {
+                               AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     *data_size = 0; /* In case of error */
     if(buf_size < avctx->block_align) return -1;
     switch(avctx->codec_id) {

Modified: trunk/libavcodec/libopenjpeg.c
==============================================================================
--- trunk/libavcodec/libopenjpeg.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/libopenjpeg.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -58,8 +58,10 @@ static av_cold int libopenjpeg_decode_in
 
 static int libopenjpeg_decode_frame(AVCodecContext *avctx,
                                     void *data, int *data_size,
-                                    const uint8_t *buf, int buf_size)
+                                    AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     LibOpenJPEGContext *ctx = avctx->priv_data;
     AVFrame *picture = &ctx->image, *output = data;
     opj_dinfo_t *dec;

Modified: trunk/libavcodec/libschroedingerdec.c
==============================================================================
--- trunk/libavcodec/libschroedingerdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/libschroedingerdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -207,8 +207,10 @@ static void libschroedinger_handle_first
 
 static int libschroedinger_decode_frame(AVCodecContext *avccontext,
                                         void *data, int *data_size,
-                                        const uint8_t *buf, int buf_size)
+                                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
 
     FfmpegSchroDecoderParams *p_schro_params = avccontext->priv_data;
     SchroDecoder *decoder = p_schro_params->decoder;

Modified: trunk/libavcodec/libspeexdec.c
==============================================================================
--- trunk/libavcodec/libspeexdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/libspeexdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -90,8 +90,10 @@ static av_cold int libspeex_decode_init(
 
 static int libspeex_decode_frame(AVCodecContext *avctx,
                                  void *data, int *data_size,
-                                 const uint8_t *buf, int buf_size)
+                                 AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     LibSpeexContext *s = avctx->priv_data;
     int16_t *output = data, *end;
     int i, num_samples;

Modified: trunk/libavcodec/loco.c
==============================================================================
--- trunk/libavcodec/loco.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/loco.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -158,8 +158,10 @@ static int loco_decode_plane(LOCOContext
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     LOCOContext * const l = avctx->priv_data;
     AVFrame * const p= (AVFrame*)&l->pic;
     int decoded;

Modified: trunk/libavcodec/mace.c
==============================================================================
--- trunk/libavcodec/mace.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mace.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -236,8 +236,10 @@ static av_cold int mace_decode_init(AVCo
 
 static int mace_decode_frame(AVCodecContext *avctx,
                               void *data, int *data_size,
-                              const uint8_t *buf, int buf_size)
+                              AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     int16_t *samples = data;
     MACEContext *ctx = avctx->priv_data;
     int i, j, k, l;

Modified: trunk/libavcodec/mdec.c
==============================================================================
--- trunk/libavcodec/mdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -154,8 +154,10 @@ static inline void idct_put(MDECContext 
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MDECContext * const a = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p= &a->picture;

Modified: trunk/libavcodec/mimic.c
==============================================================================
--- trunk/libavcodec/mimic.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mimic.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -274,8 +274,10 @@ static void prepare_avpic(MimicContext *
 }
 
 static int mimic_decode_frame(AVCodecContext *avctx, void *data,
-                              int *data_size, const uint8_t *buf, int buf_size)
+                              int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MimicContext *ctx = avctx->priv_data;
     int is_pframe;
     int width, height;

Modified: trunk/libavcodec/mjpegbdec.c
==============================================================================
--- trunk/libavcodec/mjpegbdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mjpegbdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -31,8 +31,10 @@
 
 static int mjpegb_decode_frame(AVCodecContext *avctx,
                               void *data, int *data_size,
-                              const uint8_t *buf, int buf_size)
+                              AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MJpegDecodeContext *s = avctx->priv_data;
     const uint8_t *buf_end, *buf_ptr;
     AVFrame *picture = data;

Modified: trunk/libavcodec/mjpegdec.c
==============================================================================
--- trunk/libavcodec/mjpegdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mjpegdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -1258,8 +1258,10 @@ found:
 
 int ff_mjpeg_decode_frame(AVCodecContext *avctx,
                               void *data, int *data_size,
-                              const uint8_t *buf, int buf_size)
+                              AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MJpegDecodeContext *s = avctx->priv_data;
     const uint8_t *buf_end, *buf_ptr;
     int start_code;

Modified: trunk/libavcodec/mjpegdec.h
==============================================================================
--- trunk/libavcodec/mjpegdec.h	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mjpegdec.h	Tue Apr  7 17:59:50 2009	(r18351)
@@ -106,7 +106,7 @@ int ff_mjpeg_decode_init(AVCodecContext 
 int ff_mjpeg_decode_end(AVCodecContext *avctx);
 int ff_mjpeg_decode_frame(AVCodecContext *avctx,
                           void *data, int *data_size,
-                          const uint8_t *buf, int buf_size);
+                          AVPacket *avpkt);
 int ff_mjpeg_decode_dqt(MJpegDecodeContext *s);
 int ff_mjpeg_decode_dht(MJpegDecodeContext *s);
 int ff_mjpeg_decode_sof(MJpegDecodeContext *s);

Modified: trunk/libavcodec/mlpdec.c
==============================================================================
--- trunk/libavcodec/mlpdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mlpdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -904,8 +904,10 @@ static int output_data(MLPDecodeContext 
  *  otherwise returns the number of bytes consumed. */
 
 static int read_access_unit(AVCodecContext *avctx, void* data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MLPDecodeContext *m = avctx->priv_data;
     GetBitContext gb;
     unsigned int length, substr;

Modified: trunk/libavcodec/mmvideo.c
==============================================================================
--- trunk/libavcodec/mmvideo.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mmvideo.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -159,8 +159,10 @@ static void mm_decode_inter(MmContext * 
 
 static int mm_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MmContext *s = avctx->priv_data;
     const uint8_t *buf_end = buf+buf_size;
     int type;

Modified: trunk/libavcodec/motionpixels.c
==============================================================================
--- trunk/libavcodec/motionpixels.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/motionpixels.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -281,8 +281,10 @@ static void mp_decode_frame_helper(Motio
 
 static int mp_decode_frame(AVCodecContext *avctx,
                                  void *data, int *data_size,
-                                 const uint8_t *buf, int buf_size)
+                                 AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MotionPixelsContext *mp = avctx->priv_data;
     GetBitContext gb;
     int i, count1, count2, sz;

Modified: trunk/libavcodec/mpc7.c
==============================================================================
--- trunk/libavcodec/mpc7.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mpc7.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -156,8 +156,10 @@ static inline void idx_to_quant(MPCConte
 
 static int mpc7_decode_frame(AVCodecContext * avctx,
                             void *data, int *data_size,
-                            const uint8_t * buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MPCContext *c = avctx->priv_data;
     GetBitContext gb;
     uint8_t *bits;

Modified: trunk/libavcodec/mpc8.c
==============================================================================
--- trunk/libavcodec/mpc8.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mpc8.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -180,8 +180,10 @@ static av_cold int mpc8_decode_init(AVCo
 
 static int mpc8_decode_frame(AVCodecContext * avctx,
                             void *data, int *data_size,
-                            const uint8_t * buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MPCContext *c = avctx->priv_data;
     GetBitContext gb2, *gb = &gb2;
     int i, j, k, ch, cnt, res, t;

Modified: trunk/libavcodec/mpeg12.c
==============================================================================
--- trunk/libavcodec/mpeg12.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mpeg12.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -2260,8 +2260,10 @@ static int decode_chunks(AVCodecContext 
 /* handle buffering and image synchronisation */
 static int mpeg_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     Mpeg1Context *s = avctx->priv_data;
     AVFrame *picture = data;
     MpegEncContext *s2 = &s->mpeg_enc_ctx;

Modified: trunk/libavcodec/mpegaudiodec.c
==============================================================================
--- trunk/libavcodec/mpegaudiodec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mpegaudiodec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -2258,8 +2258,10 @@ static int mp_decode_frame(MPADecodeCont
 
 static int decode_frame(AVCodecContext * avctx,
                         void *data, int *data_size,
-                        const uint8_t * buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MPADecodeContext *s = avctx->priv_data;
     uint32_t header;
     int out_size;
@@ -2315,8 +2317,10 @@ static void flush(AVCodecContext *avctx)
 #if CONFIG_MP3ADU_DECODER
 static int decode_frame_adu(AVCodecContext * avctx,
                         void *data, int *data_size,
-                        const uint8_t * buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MPADecodeContext *s = avctx->priv_data;
     uint32_t header;
     int len, out_size;
@@ -2459,8 +2463,10 @@ static av_cold int decode_close_mp3on4(A
 
 static int decode_frame_mp3on4(AVCodecContext * avctx,
                         void *data, int *data_size,
-                        const uint8_t * buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MP3On4DecodeContext *s = avctx->priv_data;
     MPADecodeContext *m;
     int fsize, len = buf_size, out_size = 0;

Modified: trunk/libavcodec/mpegvideo.h
==============================================================================
--- trunk/libavcodec/mpegvideo.h	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/mpegvideo.h	Tue Apr  7 17:59:50 2009	(r18351)
@@ -795,7 +795,7 @@ int ff_h261_get_picture_format(int width
 int ff_h263_decode_init(AVCodecContext *avctx);
 int ff_h263_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size);
+                             AVPacket *avpkt);
 int ff_h263_decode_end(AVCodecContext *avctx);
 void h263_encode_mb(MpegEncContext *s,
                     DCTELEM block[6][64],

Modified: trunk/libavcodec/msrle.c
==============================================================================
--- trunk/libavcodec/msrle.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/msrle.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -63,8 +63,10 @@ static av_cold int msrle_decode_init(AVC
 
 static int msrle_decode_frame(AVCodecContext *avctx,
                               void *data, int *data_size,
-                              const uint8_t *buf, int buf_size)
+                              AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MsrleContext *s = avctx->priv_data;
 
     s->buf = buf;

Modified: trunk/libavcodec/msvideo1.c
==============================================================================
--- trunk/libavcodec/msvideo1.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/msvideo1.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -294,8 +294,10 @@ static void msvideo1_decode_16bit(Msvide
 
 static int msvideo1_decode_frame(AVCodecContext *avctx,
                                 void *data, int *data_size,
-                                const uint8_t *buf, int buf_size)
+                                AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     Msvideo1Context *s = avctx->priv_data;
 
     s->buf = buf;

Modified: trunk/libavcodec/nellymoserdec.c
==============================================================================
--- trunk/libavcodec/nellymoserdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/nellymoserdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -153,7 +153,9 @@ static av_cold int decode_init(AVCodecCo
 
 static int decode_tag(AVCodecContext * avctx,
                       void *data, int *data_size,
-                      const uint8_t * buf, int buf_size) {
+                      AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     NellyMoserDecodeContext *s = avctx->priv_data;
     int blocks, i;
     int16_t* samples;

Modified: trunk/libavcodec/nuv.c
==============================================================================
--- trunk/libavcodec/nuv.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/nuv.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -128,7 +128,9 @@ static int codec_reinit(AVCodecContext *
 }
 
 static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
-                        const uint8_t *buf, int buf_size) {
+                        AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     NuvContext *c = avctx->priv_data;
     AVFrame *picture = data;
     int orig_size = buf_size;

Modified: trunk/libavcodec/pcm.c
==============================================================================
--- trunk/libavcodec/pcm.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/pcm.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -323,8 +323,10 @@ static av_cold int pcm_decode_init(AVCod
 
 static int pcm_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     PCMDecode *s = avctx->priv_data;
     int sample_size, c, n;
     short *samples;

Modified: trunk/libavcodec/pcx.c
==============================================================================
--- trunk/libavcodec/pcx.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/pcx.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -70,7 +70,9 @@ static void pcx_palette(const uint8_t **
 }
 
 static int pcx_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
-                            const uint8_t *buf, int buf_size) {
+                            AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     PCXContext * const s = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p = &s->picture;

Modified: trunk/libavcodec/pngdec.c
==============================================================================
--- trunk/libavcodec/pngdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/pngdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -379,8 +379,10 @@ static int png_decode_idat(PNGDecContext
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     PNGDecContext * const s = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p= &s->picture;

Modified: trunk/libavcodec/pnmenc.c
==============================================================================
--- trunk/libavcodec/pnmenc.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/pnmenc.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -34,8 +34,10 @@ static av_cold int common_init(AVCodecCo
 
 static int pnm_decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     PNMContext * const s = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p= (AVFrame*)&s->picture;

Modified: trunk/libavcodec/ptx.c
==============================================================================
--- trunk/libavcodec/ptx.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/ptx.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -36,7 +36,9 @@ static av_cold int ptx_init(AVCodecConte
 }
 
 static int ptx_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
-                            const uint8_t *buf, int buf_size) {
+                            AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     PTXContext * const s = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p = &s->picture;

Modified: trunk/libavcodec/qcelpdec.c
==============================================================================
--- trunk/libavcodec/qcelpdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/qcelpdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -729,8 +729,10 @@ static void warn_insufficient_frame_qual
 }
 
 static int qcelp_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
-                              const uint8_t *buf, int buf_size)
+                              AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     QCELPContext *q = avctx->priv_data;
     float *outbuffer = data;
     int   i;

Modified: trunk/libavcodec/qdm2.c
==============================================================================
--- trunk/libavcodec/qdm2.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/qdm2.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -1968,8 +1968,10 @@ static void qdm2_decode (QDM2Context *q,
 
 static int qdm2_decode_frame(AVCodecContext *avctx,
             void *data, int *data_size,
-            const uint8_t *buf, int buf_size)
+            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     QDM2Context *s = avctx->priv_data;
 
     if(!buf)

Modified: trunk/libavcodec/qdrw.c
==============================================================================
--- trunk/libavcodec/qdrw.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/qdrw.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -34,8 +34,10 @@ typedef struct QdrawContext{
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     QdrawContext * const a = avctx->priv_data;
     AVFrame * const p= (AVFrame*)&a->pic;
     uint8_t* outdata;

Modified: trunk/libavcodec/qpeg.c
==============================================================================
--- trunk/libavcodec/qpeg.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/qpeg.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -248,8 +248,10 @@ static void qpeg_decode_inter(const uint
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     QpegContext * const a = avctx->priv_data;
     AVFrame * const p= (AVFrame*)&a->pic;
     uint8_t* outdata;

Modified: trunk/libavcodec/qtrle.c
==============================================================================
--- trunk/libavcodec/qtrle.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/qtrle.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -424,8 +424,10 @@ static av_cold int qtrle_decode_init(AVC
 
 static int qtrle_decode_frame(AVCodecContext *avctx,
                               void *data, int *data_size,
-                              const uint8_t *buf, int buf_size)
+                              AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     QtrleContext *s = avctx->priv_data;
     int header, start_line;
     int stream_ptr, height, row_ptr;

Modified: trunk/libavcodec/ra144.c
==============================================================================
--- trunk/libavcodec/ra144.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/ra144.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -287,8 +287,10 @@ static int interp(RA144Context *ractx, i
 
 /** Uncompress one block (20 bytes -> 160*2 bytes). */
 static int ra144_decode_frame(AVCodecContext * avctx, void *vdata,
-                              int *data_size, const uint8_t *buf, int buf_size)
+                              int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     static const uint8_t sizes[10] = {6, 5, 5, 4, 4, 3, 3, 3, 3, 2};
     unsigned int refl_rms[4];    // RMS of the reflection coefficients
     uint16_t block_coefs[4][30]; // LPC coefficients of each sub-block

Modified: trunk/libavcodec/ra288.c
==============================================================================
--- trunk/libavcodec/ra288.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/ra288.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -160,9 +160,10 @@ static void backward_filter(float *hist,
 }
 
 static int ra288_decode_frame(AVCodecContext * avctx, void *data,
-                              int *data_size, const uint8_t * buf,
-                              int buf_size)
+                              int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     float *out = data;
     int i, j;
     RA288Context *ractx = avctx->priv_data;

Modified: trunk/libavcodec/rawdec.c
==============================================================================
--- trunk/libavcodec/rawdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/rawdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -100,8 +100,10 @@ static void flip(AVCodecContext *avctx, 
 
 static int raw_decode(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     RawVideoContext *context = avctx->priv_data;
 
     AVFrame * frame = (AVFrame *) data;

Modified: trunk/libavcodec/rl2.c
==============================================================================
--- trunk/libavcodec/rl2.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/rl2.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -181,8 +181,10 @@ static av_cold int rl2_decode_init(AVCod
  */
 static int rl2_decode_frame(AVCodecContext *avctx,
                               void *data, int *data_size,
-                              const uint8_t *buf, int buf_size)
+                              AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     Rl2Context *s = avctx->priv_data;
 
     if(s->frame.data[0])

Modified: trunk/libavcodec/roqvideodec.c
==============================================================================
--- trunk/libavcodec/roqvideodec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/roqvideodec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -169,8 +169,10 @@ static av_cold int roq_decode_init(AVCod
 
 static int roq_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     RoqContext *s = avctx->priv_data;
     int copy= !s->current_frame->data[0];
 

Modified: trunk/libavcodec/rpza.c
==============================================================================
--- trunk/libavcodec/rpza.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/rpza.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -241,8 +241,10 @@ static av_cold int rpza_decode_init(AVCo
 
 static int rpza_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     RpzaContext *s = avctx->priv_data;
 
     s->buf = buf;

Modified: trunk/libavcodec/rv10.c
==============================================================================
--- trunk/libavcodec/rv10.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/rv10.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -727,8 +727,10 @@ static int get_slice_offset(AVCodecConte
 
 static int rv10_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MpegEncContext *s = avctx->priv_data;
     int i;
     AVFrame *pict = data;

Modified: trunk/libavcodec/rv34.c
==============================================================================
--- trunk/libavcodec/rv34.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/rv34.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -1370,8 +1370,10 @@ static int get_slice_offset(AVCodecConte
 
 int ff_rv34_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     RV34DecContext *r = avctx->priv_data;
     MpegEncContext *s = &r->s;
     AVFrame *pict = data;

Modified: trunk/libavcodec/rv34.h
==============================================================================
--- trunk/libavcodec/rv34.h	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/rv34.h	Tue Apr  7 17:59:50 2009	(r18351)
@@ -123,7 +123,7 @@ typedef struct RV34DecContext{
  */
 int ff_rv34_get_start_offset(GetBitContext *gb, int blocks);
 int ff_rv34_decode_init(AVCodecContext *avctx);
-int ff_rv34_decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size);
+int ff_rv34_decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt);
 int ff_rv34_decode_end(AVCodecContext *avctx);
 
 #endif /* AVCODEC_RV34_H */

Modified: trunk/libavcodec/sgidec.c
==============================================================================
--- trunk/libavcodec/sgidec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/sgidec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -147,8 +147,10 @@ static int read_uncompressed_sgi(unsigne
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *in_buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *in_buf = avpkt->data;
+    int buf_size = avpkt->size;
     SgiState *s = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame *p = &s->picture;

Modified: trunk/libavcodec/shorten.c
==============================================================================
--- trunk/libavcodec/shorten.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/shorten.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -269,8 +269,10 @@ static void decode_subframe_lpc(ShortenC
 
 static int shorten_decode_frame(AVCodecContext *avctx,
         void *data, int *data_size,
-        const uint8_t *buf, int buf_size)
+        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     ShortenContext *s = avctx->priv_data;
     int i, input_buf_size = 0;
     int16_t *samples = data;

Modified: trunk/libavcodec/smacker.c
==============================================================================
--- trunk/libavcodec/smacker.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/smacker.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -345,8 +345,10 @@ static av_always_inline int smk_get_code
     return v;
 }
 
-static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
+static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     SmackVContext * const smk = avctx->priv_data;
     uint8_t *out;
     uint32_t *pal;
@@ -565,8 +567,10 @@ static av_cold int smka_decode_init(AVCo
 /**
  * Decode Smacker audio data
  */
-static int smka_decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
+static int smka_decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     GetBitContext gb;
     HuffContext h[4];
     VLC vlc[4];

Modified: trunk/libavcodec/smc.c
==============================================================================
--- trunk/libavcodec/smc.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/smc.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -441,8 +441,10 @@ static av_cold int smc_decode_init(AVCod
 
 static int smc_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     SmcContext *s = avctx->priv_data;
 
     s->buf = buf;

Modified: trunk/libavcodec/snow.c
==============================================================================
--- trunk/libavcodec/snow.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/snow.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -4483,7 +4483,9 @@ static av_cold int decode_init(AVCodecCo
     return 0;
 }
 
-static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size){
+static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt){
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     SnowContext *s = avctx->priv_data;
     RangeCoder * const c= &s->c;
     int bytes_read;

Modified: trunk/libavcodec/sonic.c
==============================================================================
--- trunk/libavcodec/sonic.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/sonic.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -851,8 +851,10 @@ static av_cold int sonic_decode_close(AV
 
 static int sonic_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     SonicContext *s = avctx->priv_data;
     GetBitContext gb;
     int i, quant, ch, j;

Modified: trunk/libavcodec/sp5xdec.c
==============================================================================
--- trunk/libavcodec/sp5xdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/sp5xdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -32,8 +32,11 @@
 
 static int sp5x_decode_frame(AVCodecContext *avctx,
                               void *data, int *data_size,
-                              const uint8_t *buf, int buf_size)
+                              AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
+    AVPacket avpkt_recoded;
 #if 0
     MJpegDecodeContext *s = avctx->priv_data;
 #endif
@@ -89,7 +92,10 @@ static int sp5x_decode_frame(AVCodecCont
     recoded[j++] = 0xD9;
 
     avctx->flags &= ~CODEC_FLAG_EMU_EDGE;
-    i = ff_mjpeg_decode_frame(avctx, data, data_size, recoded, j);
+    av_init_packet(&avpkt_recoded);
+    avpkt_recoded.data = recoded;
+    avpkt_recoded.size = j;
+    i = ff_mjpeg_decode_frame(avctx, data, data_size, &avpkt_recoded);
 
     av_free(recoded);
 

Modified: trunk/libavcodec/sunrast.c
==============================================================================
--- trunk/libavcodec/sunrast.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/sunrast.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -43,7 +43,9 @@ static av_cold int sunrast_init(AVCodecC
 }
 
 static int sunrast_decode_frame(AVCodecContext *avctx, void *data,
-                                int *data_size, const uint8_t *buf, int buf_size) {
+                                int *data_size, AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     SUNRASTContext * const s = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p = &s->picture;

Modified: trunk/libavcodec/svq1dec.c
==============================================================================
--- trunk/libavcodec/svq1dec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/svq1dec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -642,8 +642,10 @@ static int svq1_decode_frame_header (Get
 
 static int svq1_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+  const uint8_t *buf = avpkt->data;
+  int buf_size = avpkt->size;
   MpegEncContext *s=avctx->priv_data;
   uint8_t        *current, *previous;
   int             result, i, x, y, width, height;

Modified: trunk/libavcodec/svq3.c
==============================================================================
--- trunk/libavcodec/svq3.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/svq3.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -889,8 +889,10 @@ static av_cold int svq3_decode_init(AVCo
 
 static int svq3_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     MpegEncContext *const s = avctx->priv_data;
     H264Context *const h = avctx->priv_data;
     int m, mb_type;

Modified: trunk/libavcodec/targa.c
==============================================================================
--- trunk/libavcodec/targa.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/targa.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -91,8 +91,10 @@ static void targa_decode_rle(AVCodecCont
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     TargaContext * const s = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p= (AVFrame*)&s->picture;

Modified: trunk/libavcodec/tiertexseqv.c
==============================================================================
--- trunk/libavcodec/tiertexseqv.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/tiertexseqv.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -187,8 +187,10 @@ static av_cold int seqvideo_decode_init(
 
 static int seqvideo_decode_frame(AVCodecContext *avctx,
                                  void *data, int *data_size,
-                                 const uint8_t *buf, int buf_size)
+                                 AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
 
     SeqVideoContext *seq = avctx->priv_data;
 

Modified: trunk/libavcodec/tiff.c
==============================================================================
--- trunk/libavcodec/tiff.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/tiff.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -404,8 +404,10 @@ static int tiff_decode_tag(TiffContext *
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     TiffContext * const s = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p= (AVFrame*)&s->picture;

Modified: trunk/libavcodec/truemotion1.c
==============================================================================
--- trunk/libavcodec/truemotion1.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/truemotion1.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -846,8 +846,10 @@ static void truemotion1_decode_24bit(Tru
 
 static int truemotion1_decode_frame(AVCodecContext *avctx,
                                     void *data, int *data_size,
-                                    const uint8_t *buf, int buf_size)
+                                    AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     TrueMotion1Context *s = avctx->priv_data;
 
     s->buf = buf;

Modified: trunk/libavcodec/truemotion2.c
==============================================================================
--- trunk/libavcodec/truemotion2.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/truemotion2.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -763,8 +763,10 @@ static const int tm2_stream_order[TM2_NU
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     TM2Context * const l = avctx->priv_data;
     AVFrame * const p= (AVFrame*)&l->pic;
     int i, skip, t;

Modified: trunk/libavcodec/truespeech.c
==============================================================================
--- trunk/libavcodec/truespeech.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/truespeech.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -332,8 +332,10 @@ static void truespeech_save_prevvec(TSCo
 
 static int truespeech_decode_frame(AVCodecContext *avctx,
                 void *data, int *data_size,
-                const uint8_t *buf, int buf_size)
+                AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     TSContext *c = avctx->priv_data;
 
     int i, j;

Modified: trunk/libavcodec/tscc.c
==============================================================================
--- trunk/libavcodec/tscc.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/tscc.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -67,8 +67,10 @@ typedef struct TsccContext {
  * Decode a frame
  *
  */
-static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
+static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     CamtasiaContext * const c = avctx->priv_data;
     const unsigned char *encoded = buf;
     unsigned char *outptr;

Modified: trunk/libavcodec/tta.c
==============================================================================
--- trunk/libavcodec/tta.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/tta.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -287,8 +287,10 @@ static av_cold int tta_decode_init(AVCod
 
 static int tta_decode_frame(AVCodecContext *avctx,
         void *data, int *data_size,
-        const uint8_t *buf, int buf_size)
+        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     TTAContext *s = avctx->priv_data;
     int i;
 

Modified: trunk/libavcodec/txd.c
==============================================================================
--- trunk/libavcodec/txd.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/txd.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -39,7 +39,9 @@ static av_cold int txd_init(AVCodecConte
 }
 
 static int txd_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
-                            const uint8_t *buf, int buf_size) {
+                            AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     TXDContext * const s = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p = &s->picture;

Modified: trunk/libavcodec/ulti.c
==============================================================================
--- trunk/libavcodec/ulti.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/ulti.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -200,8 +200,10 @@ static void ulti_grad(AVFrame *frame, in
 
 static int ulti_decode_frame(AVCodecContext *avctx,
                              void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+                             AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     UltimotionDecodeContext *s=avctx->priv_data;
     int modifier = 0;
     int uniq = 0;

Modified: trunk/libavcodec/utils.c
==============================================================================
--- trunk/libavcodec/utils.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/utils.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -524,18 +524,32 @@ int avcodec_encode_subtitle(AVCodecConte
     return ret;
 }
 
+#if LIBAVCODEC_VERSION_MAJOR < 53
 int attribute_align_arg avcodec_decode_video(AVCodecContext *avctx, AVFrame *picture,
                          int *got_picture_ptr,
                          const uint8_t *buf, int buf_size)
 {
+    AVPacket avpkt;
+    av_init_packet(&avpkt);
+    avpkt.data = buf;
+    avpkt.size = buf_size;
+
+    return avcodec_decode_video2(avctx, picture, got_picture_ptr, &avpkt);
+}
+#endif
+
+int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
+                         int *got_picture_ptr,
+                         AVPacket *avpkt)
+{
     int ret;
 
     *got_picture_ptr= 0;
     if((avctx->coded_width||avctx->coded_height) && avcodec_check_dimensions(avctx,avctx->coded_width,avctx->coded_height))
         return -1;
-    if((avctx->codec->capabilities & CODEC_CAP_DELAY) || buf_size){
+    if((avctx->codec->capabilities & CODEC_CAP_DELAY) || avpkt->size){
         ret = avctx->codec->decode(avctx, picture, got_picture_ptr,
-                                buf, buf_size);
+                                avpkt);
 
         emms_c(); //needed to avoid an emms_c() call before every return;
 
@@ -547,13 +561,27 @@ int attribute_align_arg avcodec_decode_v
     return ret;
 }
 
+#if LIBAVCODEC_VERSION_MAJOR < 53
 int attribute_align_arg avcodec_decode_audio2(AVCodecContext *avctx, int16_t *samples,
                          int *frame_size_ptr,
                          const uint8_t *buf, int buf_size)
 {
+    AVPacket avpkt;
+    av_init_packet(&avpkt);
+    avpkt.data = buf;
+    avpkt.size = buf_size;
+
+    return avcodec_decode_audio3(avctx, samples, frame_size_ptr, &avpkt);
+}
+#endif
+
+int attribute_align_arg avcodec_decode_audio3(AVCodecContext *avctx, int16_t *samples,
+                         int *frame_size_ptr,
+                         AVPacket *avpkt)
+{
     int ret;
 
-    if((avctx->codec->capabilities & CODEC_CAP_DELAY) || buf_size){
+    if((avctx->codec->capabilities & CODEC_CAP_DELAY) || avpkt->size){
         //FIXME remove the check below _after_ ensuring that all audio check that the available space is enough
         if(*frame_size_ptr < AVCODEC_MAX_AUDIO_FRAME_SIZE){
             av_log(avctx, AV_LOG_ERROR, "buffer smaller than AVCODEC_MAX_AUDIO_FRAME_SIZE\n");
@@ -565,8 +593,7 @@ int attribute_align_arg avcodec_decode_a
             return -1;
         }
 
-        ret = avctx->codec->decode(avctx, samples, frame_size_ptr,
-                                buf, buf_size);
+        ret = avctx->codec->decode(avctx, samples, frame_size_ptr, avpkt);
         avctx->frame_number++;
     }else{
         ret= 0;
@@ -575,15 +602,28 @@ int attribute_align_arg avcodec_decode_a
     return ret;
 }
 
+#if LIBAVCODEC_VERSION_MAJOR < 53
 int avcodec_decode_subtitle(AVCodecContext *avctx, AVSubtitle *sub,
                             int *got_sub_ptr,
                             const uint8_t *buf, int buf_size)
 {
+    AVPacket avpkt;
+    av_init_packet(&avpkt);
+    avpkt.data = buf;
+    avpkt.size = buf_size;
+
+    return avcodec_decode_subtitle2(avctx, sub, got_sub_ptr, &avpkt);
+}
+#endif
+
+int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
+                            int *got_sub_ptr,
+                            AVPacket *avpkt)
+{
     int ret;
 
     *got_sub_ptr = 0;
-    ret = avctx->codec->decode(avctx, sub, got_sub_ptr,
-                               buf, buf_size);
+    ret = avctx->codec->decode(avctx, sub, got_sub_ptr, avpkt);
     if (*got_sub_ptr)
         avctx->frame_number++;
     return ret;

Modified: trunk/libavcodec/vb.c
==============================================================================
--- trunk/libavcodec/vb.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/vb.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -173,8 +173,10 @@ static int vb_decode_framedata(VBDecCont
     return 0;
 }
 
-static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
+static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     VBDecContext * const c = avctx->priv_data;
     uint8_t *outptr, *srcptr;
     int i, j;

Modified: trunk/libavcodec/vc1.c
==============================================================================
--- trunk/libavcodec/vc1.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/vc1.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -4136,8 +4136,10 @@ static av_cold int vc1_decode_init(AVCod
  */
 static int vc1_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     VC1Context *v = avctx->priv_data;
     MpegEncContext *s = &v->s;
     AVFrame *pict = data;

Modified: trunk/libavcodec/vcr1.c
==============================================================================
--- trunk/libavcodec/vcr1.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/vcr1.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -43,8 +43,10 @@ typedef struct VCR1Context{
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     VCR1Context * const a = avctx->priv_data;
     AVFrame *picture = data;
     AVFrame * const p= (AVFrame*)&a->picture;

Modified: trunk/libavcodec/vmdav.c
==============================================================================
--- trunk/libavcodec/vmdav.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/vmdav.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -366,8 +366,10 @@ static av_cold int vmdvideo_decode_init(
 
 static int vmdvideo_decode_frame(AVCodecContext *avctx,
                                  void *data, int *data_size,
-                                 const uint8_t *buf, int buf_size)
+                                 AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     VmdVideoContext *s = avctx->priv_data;
 
     s->buf = buf;
@@ -521,8 +523,10 @@ static int vmdaudio_loadsound(VmdAudioCo
 
 static int vmdaudio_decode_frame(AVCodecContext *avctx,
                                  void *data, int *data_size,
-                                 const uint8_t *buf, int buf_size)
+                                 AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     VmdAudioContext *s = avctx->priv_data;
     unsigned char *output_samples = (unsigned char *)data;
 

Modified: trunk/libavcodec/vmnc.c
==============================================================================
--- trunk/libavcodec/vmnc.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/vmnc.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -284,8 +284,10 @@ static int decode_hextile(VmncContext *c
     return src - ssrc;
 }
 
-static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
+static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     VmncContext * const c = avctx->priv_data;
     uint8_t *outptr;
     const uint8_t *src = buf;

Modified: trunk/libavcodec/vorbis_dec.c
==============================================================================
--- trunk/libavcodec/vorbis_dec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/vorbis_dec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -1560,8 +1560,10 @@ static int vorbis_parse_audio_packet(vor
 
 static int vorbis_decode_frame(AVCodecContext *avccontext,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     vorbis_context *vc = avccontext->priv_data ;
     GetBitContext *gb = &(vc->gb);
     const float *channel_ptrs[vc->audio_channels];

Modified: trunk/libavcodec/vp3.c
==============================================================================
--- trunk/libavcodec/vp3.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/vp3.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -1800,8 +1800,10 @@ static av_cold int vp3_decode_init(AVCod
  */
 static int vp3_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     Vp3DecodeContext *s = avctx->priv_data;
     GetBitContext gb;
     static int counter = 0;

Modified: trunk/libavcodec/vqavideo.c
==============================================================================
--- trunk/libavcodec/vqavideo.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/vqavideo.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -565,8 +565,10 @@ static void vqa_decode_chunk(VqaContext 
 
 static int vqa_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     VqaContext *s = avctx->priv_data;
 
     s->buf = buf;

Modified: trunk/libavcodec/wavpack.c
==============================================================================
--- trunk/libavcodec/wavpack.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/wavpack.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -476,8 +476,10 @@ static av_cold int wavpack_decode_init(A
 
 static int wavpack_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     WavpackContext *s = avctx->priv_data;
     int16_t *samples = data;
     int samplecount;

Modified: trunk/libavcodec/wmadec.c
==============================================================================
--- trunk/libavcodec/wmadec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/wmadec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -752,8 +752,10 @@ static int wma_decode_frame(WMACodecCont
 
 static int wma_decode_superframe(AVCodecContext *avctx,
                                  void *data, int *data_size,
-                                 const uint8_t *buf, int buf_size)
+                                 AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     WMACodecContext *s = avctx->priv_data;
     int nb_frames, bit_offset, i, pos, len;
     uint8_t *q;

Modified: trunk/libavcodec/wnv1.c
==============================================================================
--- trunk/libavcodec/wnv1.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/wnv1.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -58,8 +58,10 @@ static inline int wnv1_get_code(WNV1Cont
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     WNV1Context * const l = avctx->priv_data;
     AVFrame * const p= (AVFrame*)&l->pic;
     unsigned char *Y,*U,*V;

Modified: trunk/libavcodec/ws-snd1.c
==============================================================================
--- trunk/libavcodec/ws-snd1.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/ws-snd1.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -48,8 +48,10 @@ static av_cold int ws_snd_decode_init(AV
 
 static int ws_snd_decode_frame(AVCodecContext *avctx,
                 void *data, int *data_size,
-                const uint8_t *buf, int buf_size)
+                AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
 //    WSSNDContext *c = avctx->priv_data;
 
     int in_size, out_size;

Modified: trunk/libavcodec/xan.c
==============================================================================
--- trunk/libavcodec/xan.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/xan.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -405,8 +405,10 @@ static void xan_wc4_decode_frame(XanCont
 
 static int xan_decode_frame(AVCodecContext *avctx,
                             void *data, int *data_size,
-                            const uint8_t *buf, int buf_size)
+                            AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     XanContext *s = avctx->priv_data;
     AVPaletteControl *palette_control = avctx->palctrl;
 

Modified: trunk/libavcodec/xl.c
==============================================================================
--- trunk/libavcodec/xl.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/xl.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -40,8 +40,10 @@ static const int xl_table[32] = {
 
 static int decode_frame(AVCodecContext *avctx,
                         void *data, int *data_size,
-                        const uint8_t *buf, int buf_size)
+                        AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     VideoXLContext * const a = avctx->priv_data;
     AVFrame * const p= (AVFrame*)&a->pic;
     uint8_t *Y, *U, *V;

Modified: trunk/libavcodec/xsubdec.c
==============================================================================
--- trunk/libavcodec/xsubdec.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/xsubdec.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -44,7 +44,9 @@ static uint64_t parse_timecode(const uin
 }
 
 static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
-                        const uint8_t *buf, int buf_size) {
+                        AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     AVSubtitle *sub = data;
     const uint8_t *buf_end = buf + buf_size;
     uint8_t *bitmap;

Modified: trunk/libavcodec/zmbv.c
==============================================================================
--- trunk/libavcodec/zmbv.c	Tue Apr  7 17:37:26 2009	(r18350)
+++ trunk/libavcodec/zmbv.c	Tue Apr  7 17:59:50 2009	(r18351)
@@ -392,8 +392,10 @@ static int zmbv_decode_intra(ZmbvContext
     return 0;
 }
 
-static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)
+static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
 {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     ZmbvContext * const c = avctx->priv_data;
     uint8_t *outptr;
     int zret = Z_OK; // Zlib return code



More information about the ffmpeg-cvslog mailing list