annotate rawdec.c @ 9921:f42402d1778b libavcodec

Extend init_loop_filter to work for filter limit values up to 127 instead of only up to 64. 127 is the maximum value allowed by the theora specification.
author reimar
date Sun, 05 Jul 2009 18:25:58 +0000
parents 45d331133468
children 5198794511a4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
1 /*
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
2 * Raw Video Decoder
8629
04423b2f6e0b cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents: 8023
diff changeset
3 * Copyright (c) 2001 Fabrice Bellard
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
4 *
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
5 * This file is part of FFmpeg.
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
6 *
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
11 *
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
15 * Lesser General Public License for more details.
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
16 *
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
20 */
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
21
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
22 /**
8718
e9d9d946f213 Use full internal pathname in doxygen @file directives.
diego
parents: 8629
diff changeset
23 * @file libavcodec/rawdec.c
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
24 * Raw Video Decoder
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
25 */
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
26
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
27 #include "avcodec.h"
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
28 #include "raw.h"
9335
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8995
diff changeset
29 #include "libavutil/intreadwrite.h"
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
30
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
31 typedef struct RawVideoContext {
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
32 unsigned char * buffer; /* block of memory for holding one frame */
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
33 int length; /* number of bytes in buffer */
8993
80720c5427a0 Fix raw rgb/bgr vertical flip in avi based on info from http://www.fourcc.org/fccbihgt.php.
michael
parents: 8718
diff changeset
34 int flip;
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
35 AVFrame pic; ///< AVCodecContext.coded_frame
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
36 } RawVideoContext;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
37
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
38 static const PixelFormatTag pixelFormatBpsAVI[] = {
5419
67acef686665 support raw 4bpp avi
michael
parents: 5264
diff changeset
39 { PIX_FMT_PAL8, 4 },
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
40 { PIX_FMT_PAL8, 8 },
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
41 { PIX_FMT_RGB555, 15 },
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
42 { PIX_FMT_RGB555, 16 },
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
43 { PIX_FMT_BGR24, 24 },
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
44 { PIX_FMT_RGB32, 32 },
8023
76f6a08c9fe6 Fix some icc warnings by using enum PixelFormat instead of int where appropriate.
cehoyos
parents: 7823
diff changeset
45 { PIX_FMT_NONE, 0 },
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
46 };
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
47
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
48 static const PixelFormatTag pixelFormatBpsMOV[] = {
6423
4cf5fde3c99e code is ok for 4bpp in mov too, fix 16grey.mov
bcoudurier
parents: 6247
diff changeset
49 { PIX_FMT_PAL8, 4 },
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
50 { PIX_FMT_PAL8, 8 },
9620
3ac52a187883 update comment for rgb 16 bit in .mov
bcoudurier
parents: 9355
diff changeset
51 // FIXME swscale does not support 16 bit in .mov, sample 16bit.mov
3ac52a187883 update comment for rgb 16 bit in .mov
bcoudurier
parents: 9355
diff changeset
52 // http://developer.apple.com/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
53 { PIX_FMT_BGR555, 16 },
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
54 { PIX_FMT_RGB24, 24 },
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
55 { PIX_FMT_BGR32_1, 32 },
8023
76f6a08c9fe6 Fix some icc warnings by using enum PixelFormat instead of int where appropriate.
cehoyos
parents: 7823
diff changeset
56 { PIX_FMT_NONE, 0 },
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
57 };
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
58
8023
76f6a08c9fe6 Fix some icc warnings by using enum PixelFormat instead of int where appropriate.
cehoyos
parents: 7823
diff changeset
59 static enum PixelFormat findPixelFormat(const PixelFormatTag *tags, unsigned int fourcc)
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
60 {
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
61 while (tags->pix_fmt >= 0) {
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
62 if (tags->fourcc == fourcc)
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
63 return tags->pix_fmt;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
64 tags++;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
65 }
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
66 return PIX_FMT_YUV420P;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
67 }
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
68
6517
48759bfbd073 Apply 'cold' attribute to init/uninit functions in libavcodec
zuxy
parents: 6424
diff changeset
69 static av_cold int raw_init_decoder(AVCodecContext *avctx)
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
70 {
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
71 RawVideoContext *context = avctx->priv_data;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
72
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
73 if (avctx->codec_tag == MKTAG('r','a','w',' '))
7823
4525dcd81357 Bump Major version, this commit is almost just renaming bits_per_sample to
michael
parents: 7040
diff changeset
74 avctx->pix_fmt = findPixelFormat(pixelFormatBpsMOV, avctx->bits_per_coded_sample);
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
75 else if (avctx->codec_tag)
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
76 avctx->pix_fmt = findPixelFormat(ff_raw_pixelFormatTags, avctx->codec_tag);
7823
4525dcd81357 Bump Major version, this commit is almost just renaming bits_per_sample to
michael
parents: 7040
diff changeset
77 else if (avctx->bits_per_coded_sample)
4525dcd81357 Bump Major version, this commit is almost just renaming bits_per_sample to
michael
parents: 7040
diff changeset
78 avctx->pix_fmt = findPixelFormat(pixelFormatBpsAVI, avctx->bits_per_coded_sample);
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
79
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
80 context->length = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height);
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
81 context->buffer = av_malloc(context->length);
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
82 context->pic.pict_type = FF_I_TYPE;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
83 context->pic.key_frame = 1;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
84
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
85 avctx->coded_frame= &context->pic;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
86
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
87 if (!context->buffer)
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
88 return -1;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
89
9845
45d331133468 Add new FOURCC (0x0003) for raw DIB video, set flip flag accordingly.
darkshikari
parents: 9712
diff changeset
90 if((avctx->extradata_size >= 9 && !memcmp(avctx->extradata + avctx->extradata_size - 9, "BottomUp", 9)) ||
45d331133468 Add new FOURCC (0x0003) for raw DIB video, set flip flag accordingly.
darkshikari
parents: 9712
diff changeset
91 avctx->codec_tag == MKTAG( 3 , 0 , 0 , 0 ))
8993
80720c5427a0 Fix raw rgb/bgr vertical flip in avi based on info from http://www.fourcc.org/fccbihgt.php.
michael
parents: 8718
diff changeset
92 context->flip=1;
80720c5427a0 Fix raw rgb/bgr vertical flip in avi based on info from http://www.fourcc.org/fccbihgt.php.
michael
parents: 8718
diff changeset
93
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
94 return 0;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
95 }
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
96
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
97 static void flip(AVCodecContext *avctx, AVPicture * picture){
8995
michael
parents: 8993
diff changeset
98 picture->data[0] += picture->linesize[0] * (avctx->height-1);
michael
parents: 8993
diff changeset
99 picture->linesize[0] *= -1;
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
100 }
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
101
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
102 static int raw_decode(AVCodecContext *avctx,
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
103 void *data, int *data_size,
9355
54bc8a2727b0 Implement avcodec_decode_video2(), _audio3() and _subtitle2() which takes an
rbultje
parents: 9335
diff changeset
104 AVPacket *avpkt)
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
105 {
9355
54bc8a2727b0 Implement avcodec_decode_video2(), _audio3() and _subtitle2() which takes an
rbultje
parents: 9335
diff changeset
106 const uint8_t *buf = avpkt->data;
54bc8a2727b0 Implement avcodec_decode_video2(), _audio3() and _subtitle2() which takes an
rbultje
parents: 9335
diff changeset
107 int buf_size = avpkt->size;
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
108 RawVideoContext *context = avctx->priv_data;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
109
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
110 AVFrame * frame = (AVFrame *) data;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
111 AVPicture * picture = (AVPicture *) data;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
112
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
113 frame->interlaced_frame = avctx->coded_frame->interlaced_frame;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
114 frame->top_field_first = avctx->coded_frame->top_field_first;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
115
6423
4cf5fde3c99e code is ok for 4bpp in mov too, fix 16grey.mov
bcoudurier
parents: 6247
diff changeset
116 //4bpp raw in avi and mov (yes this is ugly ...)
7823
4525dcd81357 Bump Major version, this commit is almost just renaming bits_per_sample to
michael
parents: 7040
diff changeset
117 if(avctx->bits_per_coded_sample == 4 && avctx->pix_fmt==PIX_FMT_PAL8 &&
6424
66969d0e4a6d 1000l parenthesis
bcoudurier
parents: 6423
diff changeset
118 (!avctx->codec_tag || avctx->codec_tag == MKTAG('r','a','w',' '))){
5419
67acef686665 support raw 4bpp avi
michael
parents: 5264
diff changeset
119 int i;
67acef686665 support raw 4bpp avi
michael
parents: 5264
diff changeset
120 for(i=256*2; i+1 < context->length>>1; i++){
67acef686665 support raw 4bpp avi
michael
parents: 5264
diff changeset
121 context->buffer[2*i+0]= buf[i-256*2]>>4;
67acef686665 support raw 4bpp avi
michael
parents: 5264
diff changeset
122 context->buffer[2*i+1]= buf[i-256*2]&15;
67acef686665 support raw 4bpp avi
michael
parents: 5264
diff changeset
123 }
67acef686665 support raw 4bpp avi
michael
parents: 5264
diff changeset
124 buf= context->buffer + 256*4;
67acef686665 support raw 4bpp avi
michael
parents: 5264
diff changeset
125 buf_size= context->length - 256*4;
67acef686665 support raw 4bpp avi
michael
parents: 5264
diff changeset
126 }
67acef686665 support raw 4bpp avi
michael
parents: 5264
diff changeset
127
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
128 if(buf_size < context->length - (avctx->pix_fmt==PIX_FMT_PAL8 ? 256*4 : 0))
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
129 return -1;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
130
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
131 avpicture_fill(picture, buf, avctx->pix_fmt, avctx->width, avctx->height);
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
132 if(avctx->pix_fmt==PIX_FMT_PAL8 && buf_size < context->length){
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
133 frame->data[1]= context->buffer;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
134 }
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
135 if (avctx->palctrl && avctx->palctrl->palette_changed) {
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
136 memcpy(frame->data[1], avctx->palctrl->palette, AVPALETTE_SIZE);
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
137 avctx->palctrl->palette_changed = 0;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
138 }
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
139
8993
80720c5427a0 Fix raw rgb/bgr vertical flip in avi based on info from http://www.fourcc.org/fccbihgt.php.
michael
parents: 8718
diff changeset
140 if(context->flip)
8995
michael
parents: 8993
diff changeset
141 flip(avctx, picture);
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
142
9712
1cc354a5242c Support YVU9 AVI 4cc.
michael
parents: 9620
diff changeset
143 if ( avctx->codec_tag == MKTAG('Y', 'V', '1', '2')
1cc354a5242c Support YVU9 AVI 4cc.
michael
parents: 9620
diff changeset
144 || avctx->codec_tag == MKTAG('Y', 'V', 'U', '9'))
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
145 {
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
146 // swap fields
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
147 unsigned char *tmp = picture->data[1];
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
148 picture->data[1] = picture->data[2];
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
149 picture->data[2] = tmp;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
150 }
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
151
9335
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8995
diff changeset
152 if(avctx->codec_tag == AV_RL32("yuv2") &&
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8995
diff changeset
153 avctx->pix_fmt == PIX_FMT_YUYV422) {
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8995
diff changeset
154 int x, y;
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8995
diff changeset
155 uint8_t *line = picture->data[0];
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8995
diff changeset
156 for(y = 0; y < avctx->height; y++) {
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8995
diff changeset
157 for(x = 0; x < avctx->width; x++)
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8995
diff changeset
158 line[2*x + 1] ^= 0x80;
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8995
diff changeset
159 line += picture->linesize[0];
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8995
diff changeset
160 }
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8995
diff changeset
161 }
c7396480f8e3 Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
cehoyos
parents: 8995
diff changeset
162
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
163 *data_size = sizeof(AVPicture);
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
164 return buf_size;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
165 }
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
166
6517
48759bfbd073 Apply 'cold' attribute to init/uninit functions in libavcodec
zuxy
parents: 6424
diff changeset
167 static av_cold int raw_close_decoder(AVCodecContext *avctx)
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
168 {
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
169 RawVideoContext *context = avctx->priv_data;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
170
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
171 av_freep(&context->buffer);
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
172 return 0;
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
173 }
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
174
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
175 AVCodec rawvideo_decoder = {
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
176 "rawvideo",
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
177 CODEC_TYPE_VIDEO,
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
178 CODEC_ID_RAWVIDEO,
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
179 sizeof(RawVideoContext),
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
180 raw_init_decoder,
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
181 NULL,
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
182 raw_close_decoder,
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
183 raw_decode,
7040
e943e1409077 Make AVCodec long_names definition conditional depending on CONFIG_SMALL.
stefano
parents: 6712
diff changeset
184 .long_name = NULL_IF_CONFIG_SMALL("raw video"),
5264
810df021dbef split rawvideo encoder and decoder in their own files
aurel
parents:
diff changeset
185 };