Mercurial > libavformat.hg
annotate raw.c @ 4723:a2390c6a35e6 libavformat
Fix index generation in the way that it was supposed to be used. See the
discussion in the ML thread "[PATCH] rmdec.c: merge old/new packet reading
code".
Over time, this code broke somewhat, e.g. seq was never actually written
into (and was thus always 1, therefore the seq condition was always true),
whereas it was supposed to be set to the sequence number of the video slice
in case the video frame is divided over multiple RM packets (slices). The
problem of this is that packets other than those containing the beginning
of a video frame would be indexed as well.
Secondly, flags&2 is supposed to be true for video keyframes and for these
audio packets containing the start of a block. For some codecs (e.g. AAC),
that is every single packet, whereas for others (e.g. cook), that is the
packet containing the first of a series of scrambled packets that are to be
descrambled together. Indexing any of the following would lead to incomplete
and thus useless frames. Problem here is that flags would be reset to 2 to
indicate that the first packet is ready to be returned, and in addition if
no data was left to be returned (which is always true for the first packet),
then we wouldn't actually write the index entry anyway.
All in all, the idea was good and it probably worked at some point, but that
is long ago. This patch should at the very least make it likely for this code
to be executed again at the right times, i.e. the way it was originally
intended to be used.
author | rbultje |
---|---|
date | Sun, 15 Mar 2009 20:14:25 +0000 |
parents | 430cf07e7203 |
children | ffb7e8093289 |
rev | line source |
---|---|
885 | 1 /* |
1415
3b00fb8ef8e4
replace coder/decoder file description in libavformat by muxer/demuxer
aurel
parents:
1399
diff
changeset
|
2 * RAW muxer and demuxer |
4251
77e0c7511d41
cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents:
4206
diff
changeset
|
3 * Copyright (c) 2001 Fabrice Bellard |
868
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
4 * Copyright (c) 2005 Alex Beregszaszi |
0 | 5 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1245
diff
changeset
|
6 * This file is part of FFmpeg. |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1245
diff
changeset
|
7 * |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1245
diff
changeset
|
8 * FFmpeg is free software; you can redistribute it and/or |
0 | 9 * modify it under the terms of the GNU Lesser General Public |
10 * License as published by the Free Software Foundation; either | |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1245
diff
changeset
|
11 * version 2.1 of the License, or (at your option) any later version. |
0 | 12 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1245
diff
changeset
|
13 * FFmpeg is distributed in the hope that it will be useful, |
0 | 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
16 * Lesser General Public License for more details. | |
17 * | |
18 * You should have received a copy of the GNU Lesser General Public | |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1245
diff
changeset
|
19 * License along with FFmpeg; if not, write to the Free Software |
896
edbe5c3717f9
Update licensing information: The FSF changed postal address.
diego
parents:
887
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
0 | 21 */ |
3286 | 22 |
23 #include "libavutil/crc.h" | |
24 #include "libavcodec/ac3_parser.h" | |
25 #include "libavcodec/bitstream.h" | |
26 #include "libavcodec/bytestream.h" | |
0 | 27 #include "avformat.h" |
2545
213268d7594e
move unrelated functions declarations out of allformats.h
aurel
parents:
2368
diff
changeset
|
28 #include "raw.h" |
4254 | 29 #include "id3v2.h" |
0 | 30 |
31 /* simple formats */ | |
1078
0bc9422cc0ad
Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents:
1070
diff
changeset
|
32 |
4206 | 33 #if CONFIG_ROQ_MUXER |
2076 | 34 static int roq_write_header(struct AVFormatContext *s) |
35 { | |
36 static const uint8_t header[] = { | |
37 0x84, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x1E, 0x00 | |
38 }; | |
39 | |
2771
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
40 put_buffer(s->pb, header, 8); |
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
41 put_flush_packet(s->pb); |
2076 | 42 |
43 return 0; | |
44 } | |
3728
83ddeeaae767
Replace generic CONFIG_MUXERS preprocessor condition around format-specific
diego
parents:
3727
diff
changeset
|
45 #endif |
2076 | 46 |
4206 | 47 #if CONFIG_NULL_MUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
48 static int null_write_packet(struct AVFormatContext *s, AVPacket *pkt) |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
49 { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
50 return 0; |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
51 } |
3728
83ddeeaae767
Replace generic CONFIG_MUXERS preprocessor condition around format-specific
diego
parents:
3727
diff
changeset
|
52 #endif |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
53 |
4206 | 54 #if CONFIG_MUXERS |
468 | 55 static int raw_write_packet(struct AVFormatContext *s, AVPacket *pkt) |
0 | 56 { |
2771
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
57 put_buffer(s->pb, pkt->data, pkt->size); |
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
58 put_flush_packet(s->pb); |
0 | 59 return 0; |
60 } | |
3726
514470f7afed
cosmetics: Remove redundant #endif comments that are very close to the #ifdef
diego
parents:
3725
diff
changeset
|
61 #endif |
0 | 62 |
4206 | 63 #if CONFIG_DEMUXERS |
0 | 64 /* raw input */ |
65 | 65 static int raw_read_header(AVFormatContext *s, AVFormatParameters *ap) |
0 | 66 { |
67 AVStream *st; | |
68 int id; | |
69 | |
70 st = av_new_stream(s, 0); | |
71 if (!st) | |
2273
7eb456c4ed8a
Replace all occurrences of AVERROR_NOMEM with AVERROR(ENOMEM).
takis
parents:
2231
diff
changeset
|
72 return AVERROR(ENOMEM); |
1003 | 73 |
0 | 74 id = s->iformat->value; |
75 if (id == CODEC_ID_RAWVIDEO) { | |
820
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
76 st->codec->codec_type = CODEC_TYPE_VIDEO; |
0 | 77 } else { |
820
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
78 st->codec->codec_type = CODEC_TYPE_AUDIO; |
0 | 79 } |
820
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
80 st->codec->codec_id = id; |
0 | 81 |
820
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
82 switch(st->codec->codec_type) { |
0 | 83 case CODEC_TYPE_AUDIO: |
820
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
84 st->codec->sample_rate = ap->sample_rate; |
3995 | 85 if(ap->channels) st->codec->channels = ap->channels; |
86 else st->codec->channels = 1; | |
820
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
87 av_set_pts_info(st, 64, 1, st->codec->sample_rate); |
0 | 88 break; |
89 case CODEC_TYPE_VIDEO: | |
2860
cf6976fdd05f
Do not force fps unless the user actually specified one.
michael
parents:
2771
diff
changeset
|
90 if(ap->time_base.num) |
cf6976fdd05f
Do not force fps unless the user actually specified one.
michael
parents:
2771
diff
changeset
|
91 av_set_pts_info(st, 64, ap->time_base.num, ap->time_base.den); |
cf6976fdd05f
Do not force fps unless the user actually specified one.
michael
parents:
2771
diff
changeset
|
92 else |
cf6976fdd05f
Do not force fps unless the user actually specified one.
michael
parents:
2771
diff
changeset
|
93 av_set_pts_info(st, 64, 1, 25); |
820
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
94 st->codec->width = ap->width; |
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
95 st->codec->height = ap->height; |
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
96 st->codec->pix_fmt = ap->pix_fmt; |
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
97 if(st->codec->pix_fmt == PIX_FMT_NONE) |
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
98 st->codec->pix_fmt= PIX_FMT_YUV420P; |
0 | 99 break; |
100 default: | |
101 return -1; | |
102 } | |
103 return 0; | |
104 } | |
105 | |
106 #define RAW_PACKET_SIZE 1024 | |
107 | |
64 | 108 static int raw_read_packet(AVFormatContext *s, AVPacket *pkt) |
0 | 109 { |
2929 | 110 int ret, size, bps; |
28 | 111 // AVStream *st = s->streams[0]; |
885 | 112 |
0 | 113 size= RAW_PACKET_SIZE; |
114 | |
2771
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
115 ret= av_get_packet(s->pb, pkt, size); |
0 | 116 |
117 pkt->stream_index = 0; | |
118 if (ret <= 0) { | |
2274
b21c2af60bc9
Replace all occurrences of AVERROR_IO with AVERROR(EIO).
takis
parents:
2273
diff
changeset
|
119 return AVERROR(EIO); |
0 | 120 } |
121 /* note: we need to modify the packet size here to handle the last | |
122 packet */ | |
123 pkt->size = ret; | |
2929 | 124 |
125 bps= av_get_bits_per_sample(s->streams[0]->codec->codec_id); | |
126 assert(bps); // if false there IS a bug elsewhere (NOT in this function) | |
127 pkt->dts= | |
128 pkt->pts= pkt->pos*8 / (bps * s->streams[0]->codec->channels); | |
129 | |
0 | 130 return ret; |
131 } | |
132 | |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
133 int ff_raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt) |
389
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
134 { |
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
135 int ret, size; |
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
136 |
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
137 size = RAW_PACKET_SIZE; |
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
138 |
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
139 if (av_new_packet(pkt, size) < 0) |
2274
b21c2af60bc9
Replace all occurrences of AVERROR_IO with AVERROR(EIO).
takis
parents:
2273
diff
changeset
|
140 return AVERROR(EIO); |
885 | 141 |
2771
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
142 pkt->pos= url_ftell(s->pb); |
389
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
143 pkt->stream_index = 0; |
2771
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
144 ret = get_partial_buffer(s->pb, pkt->data, size); |
389
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
145 if (ret <= 0) { |
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
146 av_free_packet(pkt); |
2274
b21c2af60bc9
Replace all occurrences of AVERROR_IO with AVERROR(EIO).
takis
parents:
2273
diff
changeset
|
147 return AVERROR(EIO); |
389
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
148 } |
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
149 pkt->size = ret; |
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
150 return ret; |
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
151 } |
3730
ee001685e4e5
Surround format-specific functions with matching preprocessor conditionals.
diego
parents:
3729
diff
changeset
|
152 #endif |
389
e14fcd57ad2f
decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents:
306
diff
changeset
|
153 |
4206 | 154 #if CONFIG_RAWVIDEO_DEMUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
155 static int rawvideo_read_packet(AVFormatContext *s, AVPacket *pkt) |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
156 { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
157 int packet_size, ret, width, height; |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
158 AVStream *st = s->streams[0]; |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
159 |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
160 width = st->codec->width; |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
161 height = st->codec->height; |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
162 |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
163 packet_size = avpicture_get_size(st->codec->pix_fmt, width, height); |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
164 if (packet_size < 0) |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
165 return -1; |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
166 |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
167 ret= av_get_packet(s->pb, pkt, packet_size); |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
168 pkt->pts= |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
169 pkt->dts= pkt->pos / packet_size; |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
170 |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
171 pkt->stream_index = 0; |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
172 if (ret != packet_size) { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
173 return AVERROR(EIO); |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
174 } else { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
175 return 0; |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
176 } |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
177 } |
3730
ee001685e4e5
Surround format-specific functions with matching preprocessor conditionals.
diego
parents:
3729
diff
changeset
|
178 #endif |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
179 |
4206 | 180 #if CONFIG_INGENIENT_DEMUXER |
868
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
181 // http://www.artificis.hu/files/texts/ingenient.txt |
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
182 static int ingenient_read_packet(AVFormatContext *s, AVPacket *pkt) |
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
183 { |
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
184 int ret, size, w, h, unk1, unk2; |
885 | 185 |
2771
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
186 if (get_le32(s->pb) != MKTAG('M', 'J', 'P', 'G')) |
2274
b21c2af60bc9
Replace all occurrences of AVERROR_IO with AVERROR(EIO).
takis
parents:
2273
diff
changeset
|
187 return AVERROR(EIO); // FIXME |
868
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
188 |
2771
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
189 size = get_le32(s->pb); |
885 | 190 |
2771
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
191 w = get_le16(s->pb); |
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
192 h = get_le16(s->pb); |
885 | 193 |
2771
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
194 url_fskip(s->pb, 8); // zero + size (padded?) |
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
195 url_fskip(s->pb, 2); |
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
196 unk1 = get_le16(s->pb); |
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
197 unk2 = get_le16(s->pb); |
3725 | 198 url_fskip(s->pb, 22); // ASCII timestamp |
885 | 199 |
4510 | 200 av_log(s, AV_LOG_DEBUG, "Ingenient packet: size=%d, width=%d, height=%d, unk1=%d unk2=%d\n", |
887 | 201 size, w, h, unk1, unk2); |
868
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
202 |
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
203 if (av_new_packet(pkt, size) < 0) |
2274
b21c2af60bc9
Replace all occurrences of AVERROR_IO with AVERROR(EIO).
takis
parents:
2273
diff
changeset
|
204 return AVERROR(EIO); |
868
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
205 |
2771
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
206 pkt->pos = url_ftell(s->pb); |
868
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
207 pkt->stream_index = 0; |
2771
d52c718e83f9
Use dynamically allocated ByteIOContext in AVFormatContext
andoma
parents:
2545
diff
changeset
|
208 ret = get_buffer(s->pb, pkt->data, size); |
868
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
209 if (ret <= 0) { |
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
210 av_free_packet(pkt); |
2274
b21c2af60bc9
Replace all occurrences of AVERROR_IO with AVERROR(EIO).
takis
parents:
2273
diff
changeset
|
211 return AVERROR(EIO); |
868
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
212 } |
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
213 pkt->size = ret; |
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
214 return ret; |
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
215 } |
3730
ee001685e4e5
Surround format-specific functions with matching preprocessor conditionals.
diego
parents:
3729
diff
changeset
|
216 #endif |
868
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
217 |
4206 | 218 #if CONFIG_DEMUXERS |
885 | 219 int pcm_read_seek(AVFormatContext *s, |
558 | 220 int stream_index, int64_t timestamp, int flags) |
306 | 221 { |
222 AVStream *st; | |
3613 | 223 int block_align, byte_rate, ret; |
306 | 224 int64_t pos; |
225 | |
226 st = s->streams[0]; | |
1399
5a3003271ad8
simplify pcm read seek, use av_get_bits_per_sample
bcoudurier
parents:
1358
diff
changeset
|
227 |
5a3003271ad8
simplify pcm read seek, use av_get_bits_per_sample
bcoudurier
parents:
1358
diff
changeset
|
228 block_align = st->codec->block_align ? st->codec->block_align : |
5a3003271ad8
simplify pcm read seek, use av_get_bits_per_sample
bcoudurier
parents:
1358
diff
changeset
|
229 (av_get_bits_per_sample(st->codec->codec_id) * st->codec->channels) >> 3; |
5a3003271ad8
simplify pcm read seek, use av_get_bits_per_sample
bcoudurier
parents:
1358
diff
changeset
|
230 byte_rate = st->codec->bit_rate ? st->codec->bit_rate >> 3 : |
5a3003271ad8
simplify pcm read seek, use av_get_bits_per_sample
bcoudurier
parents:
1358
diff
changeset
|
231 block_align * st->codec->sample_rate; |
885 | 232 |
306 | 233 if (block_align <= 0 || byte_rate <= 0) |
234 return -1; | |
4710
430cf07e7203
Make pcm_read_seek treat negative time stamps as 0, this avoids incorrectly
reimar
parents:
4620
diff
changeset
|
235 if (timestamp < 0) timestamp = 0; |
306 | 236 |
237 /* compute the position by aligning it to block_align */ | |
885 | 238 pos = av_rescale_rnd(timestamp * byte_rate, |
239 st->time_base.num, | |
558 | 240 st->time_base.den * (int64_t)block_align, |
241 (flags & AVSEEK_FLAG_BACKWARD) ? AV_ROUND_DOWN : AV_ROUND_UP); | |
242 pos *= block_align; | |
306 | 243 |
244 /* recompute exact position */ | |
464 | 245 st->cur_dts = av_rescale(pos, st->time_base.den, byte_rate * (int64_t)st->time_base.num); |
3613 | 246 if ((ret = url_fseek(s->pb, pos + s->data_offset, SEEK_SET)) < 0) |
247 return ret; | |
306 | 248 return 0; |
249 } | |
250 | |
3268
319c36da904b
set demuxers .value and use common audio_read_header function
bcoudurier
parents:
3238
diff
changeset
|
251 static int audio_read_header(AVFormatContext *s, |
319c36da904b
set demuxers .value and use common audio_read_header function
bcoudurier
parents:
3238
diff
changeset
|
252 AVFormatParameters *ap) |
63 | 253 { |
3268
319c36da904b
set demuxers .value and use common audio_read_header function
bcoudurier
parents:
3238
diff
changeset
|
254 AVStream *st = av_new_stream(s, 0); |
686
e2687b784c3a
shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents:
637
diff
changeset
|
255 if (!st) |
2273
7eb456c4ed8a
Replace all occurrences of AVERROR_NOMEM with AVERROR(ENOMEM).
takis
parents:
2231
diff
changeset
|
256 return AVERROR(ENOMEM); |
820
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
257 st->codec->codec_type = CODEC_TYPE_AUDIO; |
3268
319c36da904b
set demuxers .value and use common audio_read_header function
bcoudurier
parents:
3238
diff
changeset
|
258 st->codec->codec_id = s->iformat->value; |
2023 | 259 st->need_parsing = AVSTREAM_PARSE_FULL; |
931 | 260 /* the parameters will be extracted from the compressed bitstream */ |
4285
d8803d0a4274
Handle ID3v2 tags in raw FLAC streams by skipping them.
jbr
parents:
4254
diff
changeset
|
261 |
931 | 262 return 0; |
263 } | |
264 | |
3725 | 265 /* MPEG-1/H.263 input */ |
0 | 266 static int video_read_header(AVFormatContext *s, |
267 AVFormatParameters *ap) | |
268 { | |
269 AVStream *st; | |
270 | |
271 st = av_new_stream(s, 0); | |
272 if (!st) | |
2273
7eb456c4ed8a
Replace all occurrences of AVERROR_NOMEM with AVERROR(ENOMEM).
takis
parents:
2231
diff
changeset
|
273 return AVERROR(ENOMEM); |
0 | 274 |
820
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
275 st->codec->codec_type = CODEC_TYPE_VIDEO; |
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
276 st->codec->codec_id = s->iformat->value; |
2023 | 277 st->need_parsing = AVSTREAM_PARSE_FULL; |
306 | 278 |
3725 | 279 /* for MJPEG, specify frame rate */ |
280 /* for MPEG-4 specify it, too (most MPEG-4 streams do not have the fixed_vop_rate set ...)*/ | |
1003 | 281 if (ap->time_base.num) { |
4620
290808c90f82
Change the timebase of the raw demuxer to one that can represent the ts of fields.
michael
parents:
4610
diff
changeset
|
282 st->codec->time_base= ap->time_base; |
885 | 283 } else if ( st->codec->codec_id == CODEC_ID_MJPEG || |
820
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
284 st->codec->codec_id == CODEC_ID_MPEG4 || |
3272
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
285 st->codec->codec_id == CODEC_ID_DIRAC || |
820
feca73904e67
changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents:
814
diff
changeset
|
286 st->codec->codec_id == CODEC_ID_H264) { |
4620
290808c90f82
Change the timebase of the raw demuxer to one that can represent the ts of fields.
michael
parents:
4610
diff
changeset
|
287 st->codec->time_base= (AVRational){1,25}; |
0 | 288 } |
4620
290808c90f82
Change the timebase of the raw demuxer to one that can represent the ts of fields.
michael
parents:
4610
diff
changeset
|
289 av_set_pts_info(st, 64, 1, 1200000); |
745 | 290 |
0 | 291 return 0; |
292 } | |
3730
ee001685e4e5
Surround format-specific functions with matching preprocessor conditionals.
diego
parents:
3729
diff
changeset
|
293 #endif |
0 | 294 |
4206 | 295 #if CONFIG_MPEGVIDEO_DEMUXER |
887 | 296 #define SEQ_START_CODE 0x000001b3 |
297 #define GOP_START_CODE 0x000001b8 | |
298 #define PICTURE_START_CODE 0x00000100 | |
924 | 299 #define SLICE_START_CODE 0x00000101 |
300 #define PACK_START_CODE 0x000001ba | |
985
7f8b1a1ac020
can't have PES headers in MPEG video elementary streams so fail probe
mru
parents:
939
diff
changeset
|
301 #define VIDEO_ID 0x000001e0 |
7f8b1a1ac020
can't have PES headers in MPEG video elementary streams so fail probe
mru
parents:
939
diff
changeset
|
302 #define AUDIO_ID 0x000001c0 |
0 | 303 |
304 static int mpegvideo_probe(AVProbeData *p) | |
305 { | |
924 | 306 uint32_t code= -1; |
985
7f8b1a1ac020
can't have PES headers in MPEG video elementary streams so fail probe
mru
parents:
939
diff
changeset
|
307 int pic=0, seq=0, slice=0, pspack=0, pes=0; |
924 | 308 int i; |
49 | 309 |
924 | 310 for(i=0; i<p->buf_size; i++){ |
311 code = (code<<8) + p->buf[i]; | |
312 if ((code & 0xffffff00) == 0x100) { | |
313 switch(code){ | |
314 case SEQ_START_CODE: seq++; break; | |
315 case PICTURE_START_CODE: pic++; break; | |
316 case SLICE_START_CODE: slice++; break; | |
317 case PACK_START_CODE: pspack++; break; | |
318 } | |
1965 | 319 if ((code & 0x1f0) == VIDEO_ID) pes++; |
320 else if((code & 0x1e0) == AUDIO_ID) pes++; | |
924 | 321 } |
0 | 322 } |
985
7f8b1a1ac020
can't have PES headers in MPEG video elementary streams so fail probe
mru
parents:
939
diff
changeset
|
323 if(seq && seq*9<=pic*10 && pic*9<=slice*10 && !pspack && !pes) |
924 | 324 return AVPROBE_SCORE_MAX/2+1; // +1 for .mpg |
0 | 325 return 0; |
326 } | |
4548
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
327 |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
328 #define CAVS_SEQ_START_CODE 0x000001b0 |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
329 #define CAVS_PIC_I_START_CODE 0x000001b3 |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
330 #define CAVS_UNDEF_START_CODE 0x000001b4 |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
331 #define CAVS_PIC_PB_START_CODE 0x000001b6 |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
332 #define CAVS_VIDEO_EDIT_CODE 0x000001b7 |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
333 #define CAVS_PROFILE_JIZHUN 0x20 |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
334 |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
335 static int cavsvideo_probe(AVProbeData *p) |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
336 { |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
337 uint32_t code= -1; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
338 int pic=0, seq=0, slice_pos = 0; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
339 int i; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
340 |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
341 for(i=0; i<p->buf_size; i++){ |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
342 code = (code<<8) + p->buf[i]; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
343 if ((code & 0xffffff00) == 0x100) { |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
344 if(code < CAVS_SEQ_START_CODE) { |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
345 /* slices have to be consecutive */ |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
346 if(code < slice_pos) |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
347 return 0; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
348 slice_pos = code; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
349 } else { |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
350 slice_pos = 0; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
351 } |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
352 if (code == CAVS_SEQ_START_CODE) { |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
353 seq++; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
354 /* check for the only currently supported profile */ |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
355 if(p->buf[i+1] != CAVS_PROFILE_JIZHUN) |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
356 return 0; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
357 } else if ((code == CAVS_PIC_I_START_CODE) || |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
358 (code == CAVS_PIC_PB_START_CODE)) { |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
359 pic++; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
360 } else if ((code == CAVS_UNDEF_START_CODE) || |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
361 (code > CAVS_VIDEO_EDIT_CODE)) { |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
362 return 0; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
363 } |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
364 } |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
365 } |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
366 if(seq && seq*9<=pic*10) |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
367 return AVPROBE_SCORE_MAX/2; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
368 return 0; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
369 } |
3730
ee001685e4e5
Surround format-specific functions with matching preprocessor conditionals.
diego
parents:
3729
diff
changeset
|
370 #endif |
0 | 371 |
4206 | 372 #if CONFIG_M4V_DEMUXER |
1463
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
373 #define VISUAL_OBJECT_START_CODE 0x000001b5 |
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
374 #define VOP_START_CODE 0x000001b6 |
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
375 |
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
376 static int mpeg4video_probe(AVProbeData *probe_packet) |
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
377 { |
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
378 uint32_t temp_buffer= -1; |
2071
228e5fd9a357
improve mpeg4-es detection by rejecting streams with reserved startcodes (fixes 11-i_need_your_love-daw.mp3 detected as mpeg4)
michael
parents:
2038
diff
changeset
|
379 int VO=0, VOL=0, VOP = 0, VISO = 0, res=0; |
1463
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
380 int i; |
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
381 |
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
382 for(i=0; i<probe_packet->buf_size; i++){ |
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
383 temp_buffer = (temp_buffer<<8) + probe_packet->buf[i]; |
2231
7ad682f38b9a
* Getting rid of the use of GCC language extensions
romansh
parents:
2224
diff
changeset
|
384 if ((temp_buffer & 0xffffff00) != 0x100) |
7ad682f38b9a
* Getting rid of the use of GCC language extensions
romansh
parents:
2224
diff
changeset
|
385 continue; |
7ad682f38b9a
* Getting rid of the use of GCC language extensions
romansh
parents:
2224
diff
changeset
|
386 |
7ad682f38b9a
* Getting rid of the use of GCC language extensions
romansh
parents:
2224
diff
changeset
|
387 if (temp_buffer == VOP_START_CODE) VOP++; |
7ad682f38b9a
* Getting rid of the use of GCC language extensions
romansh
parents:
2224
diff
changeset
|
388 else if (temp_buffer == VISUAL_OBJECT_START_CODE) VISO++; |
7ad682f38b9a
* Getting rid of the use of GCC language extensions
romansh
parents:
2224
diff
changeset
|
389 else if (temp_buffer < 0x120) VO++; |
7ad682f38b9a
* Getting rid of the use of GCC language extensions
romansh
parents:
2224
diff
changeset
|
390 else if (temp_buffer < 0x130) VOL++; |
7ad682f38b9a
* Getting rid of the use of GCC language extensions
romansh
parents:
2224
diff
changeset
|
391 else if ( !(0x1AF < temp_buffer && temp_buffer < 0x1B7) |
7ad682f38b9a
* Getting rid of the use of GCC language extensions
romansh
parents:
2224
diff
changeset
|
392 && !(0x1B9 < temp_buffer && temp_buffer < 0x1C4)) res++; |
1463
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
393 } |
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
394 |
2071
228e5fd9a357
improve mpeg4-es detection by rejecting streams with reserved startcodes (fixes 11-i_need_your_love-daw.mp3 detected as mpeg4)
michael
parents:
2038
diff
changeset
|
395 if ( VOP >= VISO && VOP >= VOL && VO >= VOL && VOL > 0 && res==0) |
1463
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
396 return AVPROBE_SCORE_MAX/2; |
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
397 return 0; |
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
398 } |
3730
ee001685e4e5
Surround format-specific functions with matching preprocessor conditionals.
diego
parents:
3729
diff
changeset
|
399 #endif |
1463
acf4dbb1a7e6
mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents:
1415
diff
changeset
|
400 |
4206 | 401 #if CONFIG_H264_DEMUXER |
3570 | 402 static int h264_probe(AVProbeData *p) |
403 { | |
404 uint32_t code= -1; | |
3600 | 405 int sps=0, pps=0, idr=0, res=0, sli=0; |
3570 | 406 int i; |
407 | |
408 for(i=0; i<p->buf_size; i++){ | |
409 code = (code<<8) + p->buf[i]; | |
410 if ((code & 0xffffff00) == 0x100) { | |
411 int ref_idc= (code>>5)&3; | |
412 int type = code & 0x1F; | |
413 static const int8_t ref_zero[32]={ | |
414 2, 0, 0, 0, 0,-1, 1,-1, | |
415 -1, 1, 1, 1, 1,-1, 2, 2, | |
416 2, 2, 2, 0, 2, 2, 2, 2, | |
417 2, 2, 2, 2, 2, 2, 2, 2 | |
418 }; | |
419 | |
420 if(code & 0x80) //forbidden bit | |
421 return 0; | |
422 | |
423 if(ref_zero[type] == 1 && ref_idc) | |
424 return 0; | |
425 if(ref_zero[type] ==-1 && !ref_idc) | |
426 return 0; | |
427 if(ref_zero[type] == 2) | |
428 res++; | |
429 | |
430 switch(type){ | |
3600 | 431 case 1: sli++; break; |
3570 | 432 case 5: idr++; break; |
433 case 7: | |
434 if(p->buf[i+2]&0x0F) | |
435 return 0; | |
436 sps++; | |
437 break; | |
438 case 8: pps++; break; | |
439 } | |
440 } | |
441 } | |
3600 | 442 if(sps && pps && (idr||sli>3) && res<(sps+pps+idr)) |
3570 | 443 return AVPROBE_SCORE_MAX/2+1; // +1 for .mpg |
444 return 0; | |
445 } | |
3730
ee001685e4e5
Surround format-specific functions with matching preprocessor conditionals.
diego
parents:
3729
diff
changeset
|
446 #endif |
3570 | 447 |
4206 | 448 #if CONFIG_H263_DEMUXER |
135
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
449 static int h263_probe(AVProbeData *p) |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
450 { |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
451 int code; |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
452 const uint8_t *d; |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
453 |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
454 d = p->buf; |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
455 code = (d[0] << 14) | (d[1] << 6) | (d[2] >> 2); |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
456 if (code == 0x20) { |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
457 return 50; |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
458 } |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
459 return 0; |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
460 } |
3730
ee001685e4e5
Surround format-specific functions with matching preprocessor conditionals.
diego
parents:
3729
diff
changeset
|
461 #endif |
135
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
462 |
4206 | 463 #if CONFIG_H261_DEMUXER |
473
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
464 static int h261_probe(AVProbeData *p) |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
465 { |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
466 int code; |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
467 const uint8_t *d; |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
468 |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
469 d = p->buf; |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
470 code = (d[0] << 12) | (d[1] << 4) | (d[2] >> 4); |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
471 if (code == 0x10) { |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
472 return 50; |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
473 } |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
474 return 0; |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
475 } |
3730
ee001685e4e5
Surround format-specific functions with matching preprocessor conditionals.
diego
parents:
3729
diff
changeset
|
476 #endif |
473
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
477 |
4206 | 478 #if CONFIG_DTS_DEMUXER |
3274 | 479 #define DCA_MARKER_14B_BE 0x1FFFE800 |
480 #define DCA_MARKER_14B_LE 0xFF1F00E8 | |
481 #define DCA_MARKER_RAW_BE 0x7FFE8001 | |
482 #define DCA_MARKER_RAW_LE 0xFE7F0180 | |
483 static int dts_probe(AVProbeData *p) | |
484 { | |
485 const uint8_t *buf, *bufp; | |
486 uint32_t state = -1; | |
487 | |
488 buf = p->buf; | |
489 | |
490 for(; buf < (p->buf+p->buf_size)-2; buf+=2) { | |
491 bufp = buf; | |
492 state = (state << 16) | bytestream_get_be16(&bufp); | |
493 | |
3725 | 494 /* regular bitstream */ |
3274 | 495 if (state == DCA_MARKER_RAW_BE || state == DCA_MARKER_RAW_LE) |
496 return AVPROBE_SCORE_MAX/2+1; | |
497 | |
3725 | 498 /* 14 bits big-endian bitstream */ |
3274 | 499 if (state == DCA_MARKER_14B_BE) |
500 if ((bytestream_get_be16(&bufp) & 0xFFF0) == 0x07F0) | |
501 return AVPROBE_SCORE_MAX/2+1; | |
502 | |
3725 | 503 /* 14 bits little-endian bitstream */ |
3274 | 504 if (state == DCA_MARKER_14B_LE) |
505 if ((bytestream_get_be16(&bufp) & 0xF0FF) == 0xF007) | |
506 return AVPROBE_SCORE_MAX/2+1; | |
507 } | |
508 | |
509 return 0; | |
510 } | |
3730
ee001685e4e5
Surround format-specific functions with matching preprocessor conditionals.
diego
parents:
3729
diff
changeset
|
511 #endif |
3274 | 512 |
4206 | 513 #if CONFIG_DIRAC_DEMUXER |
3272
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
514 static int dirac_probe(AVProbeData *p) |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
515 { |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
516 if (AV_RL32(p->buf) == MKTAG('B', 'B', 'C', 'D')) |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
517 return AVPROBE_SCORE_MAX; |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
518 else |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
519 return 0; |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
520 } |
3730
ee001685e4e5
Surround format-specific functions with matching preprocessor conditionals.
diego
parents:
3729
diff
changeset
|
521 #endif |
3272
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
522 |
4206 | 523 #if CONFIG_DNXHD_DEMUXER |
4004 | 524 static int dnxhd_probe(AVProbeData *p) |
525 { | |
526 static const uint8_t header[] = {0x00,0x00,0x02,0x80,0x01}; | |
527 if (!memcmp(p->buf, header, 5)) | |
528 return AVPROBE_SCORE_MAX; | |
529 else | |
530 return 0; | |
531 } | |
532 #endif | |
533 | |
4206 | 534 #if CONFIG_AC3_DEMUXER || CONFIG_EAC3_DEMUXER |
3864
b31edc09d556
simplify ac3_probe() and eac3_probe(). patch by Aurelien Jacobs.
jbr
parents:
3863
diff
changeset
|
535 static int ac3_eac3_probe(AVProbeData *p, enum CodecID expected_codec_id) |
1768 | 536 { |
2224 | 537 int max_frames, first_frames = 0, frames; |
1931 | 538 uint8_t *buf, *buf2, *end; |
539 AC3HeaderInfo hdr; | |
3238
db733a434b2c
change ff_ac3_parse_header() to take a GetBitContext instead of const char*
bwolowiec
parents:
3237
diff
changeset
|
540 GetBitContext gbc; |
3864
b31edc09d556
simplify ac3_probe() and eac3_probe(). patch by Aurelien Jacobs.
jbr
parents:
3863
diff
changeset
|
541 enum CodecID codec_id = CODEC_ID_AC3; |
1768 | 542 |
1931 | 543 max_frames = 0; |
544 buf = p->buf; | |
2304
763527841a80
additional tweaks to AC3 probe function. give a higher score to a single frame
jbr
parents:
2303
diff
changeset
|
545 end = buf + p->buf_size; |
1931 | 546 |
547 for(; buf < end; buf++) { | |
548 buf2 = buf; | |
549 | |
550 for(frames = 0; buf2 < end; frames++) { | |
3238
db733a434b2c
change ff_ac3_parse_header() to take a GetBitContext instead of const char*
bwolowiec
parents:
3237
diff
changeset
|
551 init_get_bits(&gbc, buf2, 54); |
db733a434b2c
change ff_ac3_parse_header() to take a GetBitContext instead of const char*
bwolowiec
parents:
3237
diff
changeset
|
552 if(ff_ac3_parse_header(&gbc, &hdr) < 0) |
1931 | 553 break; |
3237
4fa7ec10b57e
Compute AC3 frame CRC for stronger raw AC3 format probing.
andoma
parents:
3235
diff
changeset
|
554 if(buf2 + hdr.frame_size > end || |
4fa7ec10b57e
Compute AC3 frame CRC for stronger raw AC3 format probing.
andoma
parents:
3235
diff
changeset
|
555 av_crc(av_crc_get_table(AV_CRC_16_ANSI), 0, buf2 + 2, hdr.frame_size - 2)) |
4fa7ec10b57e
Compute AC3 frame CRC for stronger raw AC3 format probing.
andoma
parents:
3235
diff
changeset
|
556 break; |
3862 | 557 if (hdr.bitstream_id > 10) |
3864
b31edc09d556
simplify ac3_probe() and eac3_probe(). patch by Aurelien Jacobs.
jbr
parents:
3863
diff
changeset
|
558 codec_id = CODEC_ID_EAC3; |
1931 | 559 buf2 += hdr.frame_size; |
560 } | |
561 max_frames = FFMAX(max_frames, frames); | |
562 if(buf == p->buf) | |
563 first_frames = frames; | |
1768 | 564 } |
3864
b31edc09d556
simplify ac3_probe() and eac3_probe(). patch by Aurelien Jacobs.
jbr
parents:
3863
diff
changeset
|
565 if(codec_id != expected_codec_id) return 0; |
1931 | 566 if (first_frames>=3) return AVPROBE_SCORE_MAX * 3 / 4; |
2313
7f6e22803038
10l to me. Revert recent changes to ac3_probe() which made misdetection as AC3 too probable.
jbr
parents:
2305
diff
changeset
|
567 else if(max_frames>=3) return AVPROBE_SCORE_MAX / 2; |
1931 | 568 else if(max_frames>=1) return 1; |
569 else return 0; | |
1768 | 570 } |
3730
ee001685e4e5
Surround format-specific functions with matching preprocessor conditionals.
diego
parents:
3729
diff
changeset
|
571 #endif |
1768 | 572 |
4206 | 573 #if CONFIG_AC3_DEMUXER |
3862 | 574 static int ac3_probe(AVProbeData *p) |
575 { | |
3864
b31edc09d556
simplify ac3_probe() and eac3_probe(). patch by Aurelien Jacobs.
jbr
parents:
3863
diff
changeset
|
576 return ac3_eac3_probe(p, CODEC_ID_AC3); |
3862 | 577 } |
578 #endif | |
579 | |
4206 | 580 #if CONFIG_EAC3_DEMUXER |
3862 | 581 static int eac3_probe(AVProbeData *p) |
582 { | |
3864
b31edc09d556
simplify ac3_probe() and eac3_probe(). patch by Aurelien Jacobs.
jbr
parents:
3863
diff
changeset
|
583 return ac3_eac3_probe(p, CODEC_ID_EAC3); |
3862 | 584 } |
585 #endif | |
586 | |
4206 | 587 #if CONFIG_AAC_DEMUXER |
4055 | 588 static int adts_aac_probe(AVProbeData *p) |
589 { | |
590 int max_frames = 0, first_frames = 0; | |
591 int fsize, frames; | |
4254 | 592 uint8_t *buf0 = p->buf; |
4055 | 593 uint8_t *buf2; |
4254 | 594 uint8_t *buf; |
595 uint8_t *end = buf0 + p->buf_size - 7; | |
596 | |
597 if (ff_id3v2_match(buf0)) { | |
598 buf0 += ff_id3v2_tag_len(buf0); | |
599 } | |
600 buf = buf0; | |
4055 | 601 |
602 for(; buf < end; buf= buf2+1) { | |
603 buf2 = buf; | |
604 | |
605 for(frames = 0; buf2 < end; frames++) { | |
606 uint32_t header = AV_RB16(buf2); | |
607 if((header&0xFFF6) != 0xFFF0) | |
608 break; | |
609 fsize = (AV_RB32(buf2+3)>>13) & 0x8FFF; | |
610 if(fsize < 7) | |
611 break; | |
612 buf2 += fsize; | |
613 } | |
614 max_frames = FFMAX(max_frames, frames); | |
4254 | 615 if(buf == buf0) |
4055 | 616 first_frames= frames; |
617 } | |
618 if (first_frames>=3) return AVPROBE_SCORE_MAX/2+1; | |
619 else if(max_frames>500)return AVPROBE_SCORE_MAX/2; | |
620 else if(max_frames>=3) return AVPROBE_SCORE_MAX/4; | |
621 else if(max_frames>=1) return 1; | |
622 else return 0; | |
623 } | |
624 #endif | |
3545
2949f7da8931
Add a note to remind people to add new raw formats to the Makefile.
diego
parents:
3543
diff
changeset
|
625 |
2949f7da8931
Add a note to remind people to add new raw formats to the Makefile.
diego
parents:
3543
diff
changeset
|
626 /* Note: Do not forget to add new entries to the Makefile as well. */ |
2949f7da8931
Add a note to remind people to add new raw formats to the Makefile.
diego
parents:
3543
diff
changeset
|
627 |
4206 | 628 #if CONFIG_AAC_DEMUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
629 AVInputFormat aac_demuxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
630 "aac", |
4501 | 631 NULL_IF_CONFIG_SMALL("raw ADTS AAC"), |
3405 | 632 0, |
4055 | 633 adts_aac_probe, |
3405 | 634 audio_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
635 ff_raw_read_partial_packet, |
3405 | 636 .flags= AVFMT_GENERIC_INDEX, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
637 .extensions = "aac", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
638 .value = CODEC_ID_AAC, |
1070
26d75e74c7b7
Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents:
1003
diff
changeset
|
639 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
640 #endif |
1070
26d75e74c7b7
Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents:
1003
diff
changeset
|
641 |
4206 | 642 #if CONFIG_AC3_DEMUXER |
1167 | 643 AVInputFormat ac3_demuxer = { |
0 | 644 "ac3", |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
645 NULL_IF_CONFIG_SMALL("raw AC-3"), |
0 | 646 0, |
1768 | 647 ac3_probe, |
3268
319c36da904b
set demuxers .value and use common audio_read_header function
bcoudurier
parents:
3238
diff
changeset
|
648 audio_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
649 ff_raw_read_partial_packet, |
1756 | 650 .flags= AVFMT_GENERIC_INDEX, |
0 | 651 .extensions = "ac3", |
3268
319c36da904b
set demuxers .value and use common audio_read_header function
bcoudurier
parents:
3238
diff
changeset
|
652 .value = CODEC_ID_AC3, |
0 | 653 }; |
2022
4f62a7d9381a
Make the declaration of AVInputFormat ac3_demuxer conditional
diego
parents:
2021
diff
changeset
|
654 #endif |
0 | 655 |
4206 | 656 #if CONFIG_AC3_MUXER |
1167 | 657 AVOutputFormat ac3_muxer = { |
0 | 658 "ac3", |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
659 NULL_IF_CONFIG_SMALL("raw AC-3"), |
885 | 660 "audio/x-ac3", |
0 | 661 "ac3", |
662 0, | |
663 CODEC_ID_AC3, | |
3289 | 664 CODEC_ID_NONE, |
2305 | 665 NULL, |
0 | 666 raw_write_packet, |
1245
e59b75051ded
dont be too picky about timestampsbeing wrong if the destination container is without timestamps and raw of the raw video / raw audio sort
michael
parents:
1169
diff
changeset
|
667 .flags= AVFMT_NOTIMESTAMPS, |
0 | 668 }; |
3726
514470f7afed
cosmetics: Remove redundant #endif comments that are very close to the #ifdef
diego
parents:
3725
diff
changeset
|
669 #endif |
0 | 670 |
4206 | 671 #if CONFIG_DIRAC_DEMUXER |
3272
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
672 AVInputFormat dirac_demuxer = { |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
673 "dirac", |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
674 NULL_IF_CONFIG_SMALL("raw Dirac"), |
3272
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
675 0, |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
676 dirac_probe, |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
677 video_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
678 ff_raw_read_partial_packet, |
3272
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
679 .flags= AVFMT_GENERIC_INDEX, |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
680 .value = CODEC_ID_DIRAC, |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
681 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
682 #endif |
3272
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
683 |
4206 | 684 #if CONFIG_DIRAC_MUXER |
3272
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
685 AVOutputFormat dirac_muxer = { |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
686 "dirac", |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
687 NULL_IF_CONFIG_SMALL("raw Dirac"), |
3272
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
688 NULL, |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
689 "drc", |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
690 0, |
3289 | 691 CODEC_ID_NONE, |
3272
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
692 CODEC_ID_DIRAC, |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
693 NULL, |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
694 raw_write_packet, |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
695 .flags= AVFMT_NOTIMESTAMPS, |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
696 }; |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
697 #endif |
07038dc492ab
Import Dirac demuxer/muxer from SoC branch; written by Marco Gerards,
lu_zero
parents:
3269
diff
changeset
|
698 |
4206 | 699 #if CONFIG_DNXHD_DEMUXER |
4004 | 700 AVInputFormat dnxhd_demuxer = { |
701 "dnxhd", | |
702 NULL_IF_CONFIG_SMALL("raw DNxHD (SMPTE VC-3)"), | |
703 0, | |
704 dnxhd_probe, | |
705 video_read_header, | |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
706 ff_raw_read_partial_packet, |
4004 | 707 .flags= AVFMT_GENERIC_INDEX, |
708 .value = CODEC_ID_DNXHD, | |
709 }; | |
710 #endif | |
711 | |
4206 | 712 #if CONFIG_DNXHD_MUXER |
4004 | 713 AVOutputFormat dnxhd_muxer = { |
714 "dnxhd", | |
715 NULL_IF_CONFIG_SMALL("raw DNxHD (SMPTE VC-3)"), | |
716 NULL, | |
717 "dnxhd", | |
718 0, | |
719 CODEC_ID_NONE, | |
720 CODEC_ID_DNXHD, | |
721 NULL, | |
722 raw_write_packet, | |
723 .flags= AVFMT_NOTIMESTAMPS, | |
724 }; | |
725 #endif | |
726 | |
4206 | 727 #if CONFIG_DTS_DEMUXER |
1167 | 728 AVInputFormat dts_demuxer = { |
496
112057e05179
libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents:
483
diff
changeset
|
729 "dts", |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
730 NULL_IF_CONFIG_SMALL("raw DTS"), |
496
112057e05179
libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents:
483
diff
changeset
|
731 0, |
3274 | 732 dts_probe, |
3268
319c36da904b
set demuxers .value and use common audio_read_header function
bcoudurier
parents:
3238
diff
changeset
|
733 audio_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
734 ff_raw_read_partial_packet, |
1756 | 735 .flags= AVFMT_GENERIC_INDEX, |
496
112057e05179
libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents:
483
diff
changeset
|
736 .extensions = "dts", |
3268
319c36da904b
set demuxers .value and use common audio_read_header function
bcoudurier
parents:
3238
diff
changeset
|
737 .value = CODEC_ID_DTS, |
496
112057e05179
libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents:
483
diff
changeset
|
738 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
739 #endif |
496
112057e05179
libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents:
483
diff
changeset
|
740 |
4206 | 741 #if CONFIG_DTS_MUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
742 AVOutputFormat dts_muxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
743 "dts", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
744 NULL_IF_CONFIG_SMALL("raw DTS"), |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
745 "audio/x-dca", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
746 "dts", |
931 | 747 0, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
748 CODEC_ID_DTS, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
749 CODEC_ID_NONE, |
931 | 750 NULL, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
751 raw_write_packet, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
752 .flags= AVFMT_NOTIMESTAMPS, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
753 }; |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
754 #endif |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
755 |
4206 | 756 #if CONFIG_EAC3_DEMUXER |
3862 | 757 AVInputFormat eac3_demuxer = { |
758 "eac3", | |
759 NULL_IF_CONFIG_SMALL("raw E-AC-3"), | |
760 0, | |
761 eac3_probe, | |
762 audio_read_header, | |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
763 ff_raw_read_partial_packet, |
3862 | 764 .flags= AVFMT_GENERIC_INDEX, |
765 .extensions = "eac3", | |
766 .value = CODEC_ID_EAC3, | |
767 }; | |
768 #endif | |
769 | |
4206 | 770 #if CONFIG_EAC3_MUXER |
3862 | 771 AVOutputFormat eac3_muxer = { |
772 "eac3", | |
773 NULL_IF_CONFIG_SMALL("raw E-AC-3"), | |
774 "audio/x-eac3", | |
775 "eac3", | |
776 0, | |
777 CODEC_ID_EAC3, | |
778 CODEC_ID_NONE, | |
779 NULL, | |
780 raw_write_packet, | |
781 .flags= AVFMT_NOTIMESTAMPS, | |
782 }; | |
783 #endif | |
784 | |
4206 | 785 #if CONFIG_GSM_DEMUXER |
3269
55d4f01c9728
raw GSM demuxer (does not work yet as parser is missing)
michael
parents:
3268
diff
changeset
|
786 AVInputFormat gsm_demuxer = { |
55d4f01c9728
raw GSM demuxer (does not work yet as parser is missing)
michael
parents:
3268
diff
changeset
|
787 "gsm", |
4501 | 788 NULL_IF_CONFIG_SMALL("raw GSM"), |
3269
55d4f01c9728
raw GSM demuxer (does not work yet as parser is missing)
michael
parents:
3268
diff
changeset
|
789 0, |
55d4f01c9728
raw GSM demuxer (does not work yet as parser is missing)
michael
parents:
3268
diff
changeset
|
790 NULL, |
55d4f01c9728
raw GSM demuxer (does not work yet as parser is missing)
michael
parents:
3268
diff
changeset
|
791 audio_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
792 ff_raw_read_partial_packet, |
3269
55d4f01c9728
raw GSM demuxer (does not work yet as parser is missing)
michael
parents:
3268
diff
changeset
|
793 .flags= AVFMT_GENERIC_INDEX, |
55d4f01c9728
raw GSM demuxer (does not work yet as parser is missing)
michael
parents:
3268
diff
changeset
|
794 .extensions = "gsm", |
55d4f01c9728
raw GSM demuxer (does not work yet as parser is missing)
michael
parents:
3268
diff
changeset
|
795 .value = CODEC_ID_GSM, |
55d4f01c9728
raw GSM demuxer (does not work yet as parser is missing)
michael
parents:
3268
diff
changeset
|
796 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
797 #endif |
3269
55d4f01c9728
raw GSM demuxer (does not work yet as parser is missing)
michael
parents:
3268
diff
changeset
|
798 |
4206 | 799 #if CONFIG_H261_DEMUXER |
1167 | 800 AVInputFormat h261_demuxer = { |
473
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
801 "h261", |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
802 NULL_IF_CONFIG_SMALL("raw H.261"), |
473
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
803 0, |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
804 h261_probe, |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
805 video_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
806 ff_raw_read_partial_packet, |
1756 | 807 .flags= AVFMT_GENERIC_INDEX, |
473
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
808 .extensions = "h261", |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
809 .value = CODEC_ID_H261, |
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
810 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
811 #endif |
473
e0a66a870b7f
h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents:
468
diff
changeset
|
812 |
4206 | 813 #if CONFIG_H261_MUXER |
1167 | 814 AVOutputFormat h261_muxer = { |
576
f701ba509d0c
H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents:
567
diff
changeset
|
815 "h261", |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
816 NULL_IF_CONFIG_SMALL("raw H.261"), |
576
f701ba509d0c
H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents:
567
diff
changeset
|
817 "video/x-h261", |
f701ba509d0c
H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents:
567
diff
changeset
|
818 "h261", |
f701ba509d0c
H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents:
567
diff
changeset
|
819 0, |
3289 | 820 CODEC_ID_NONE, |
576
f701ba509d0c
H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents:
567
diff
changeset
|
821 CODEC_ID_H261, |
2305 | 822 NULL, |
576
f701ba509d0c
H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents:
567
diff
changeset
|
823 raw_write_packet, |
1245
e59b75051ded
dont be too picky about timestampsbeing wrong if the destination container is without timestamps and raw of the raw video / raw audio sort
michael
parents:
1169
diff
changeset
|
824 .flags= AVFMT_NOTIMESTAMPS, |
576
f701ba509d0c
H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents:
567
diff
changeset
|
825 }; |
3726
514470f7afed
cosmetics: Remove redundant #endif comments that are very close to the #ifdef
diego
parents:
3725
diff
changeset
|
826 #endif |
576
f701ba509d0c
H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents:
567
diff
changeset
|
827 |
4206 | 828 #if CONFIG_H263_DEMUXER |
1167 | 829 AVInputFormat h263_demuxer = { |
135
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
830 "h263", |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
831 NULL_IF_CONFIG_SMALL("raw H.263"), |
135
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
832 0, |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
833 h263_probe, |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
834 video_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
835 ff_raw_read_partial_packet, |
1756 | 836 .flags= AVFMT_GENERIC_INDEX, |
135
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
837 // .extensions = "h263", //FIXME remove after writing mpeg4_probe |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
838 .value = CODEC_ID_H263, |
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
839 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
840 #endif |
135
56590088f801
truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents:
128
diff
changeset
|
841 |
4206 | 842 #if CONFIG_H263_MUXER |
1167 | 843 AVOutputFormat h263_muxer = { |
0 | 844 "h263", |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
845 NULL_IF_CONFIG_SMALL("raw H.263"), |
0 | 846 "video/x-h263", |
847 "h263", | |
848 0, | |
3289 | 849 CODEC_ID_NONE, |
0 | 850 CODEC_ID_H263, |
2305 | 851 NULL, |
0 | 852 raw_write_packet, |
1245
e59b75051ded
dont be too picky about timestampsbeing wrong if the destination container is without timestamps and raw of the raw video / raw audio sort
michael
parents:
1169
diff
changeset
|
853 .flags= AVFMT_NOTIMESTAMPS, |
0 | 854 }; |
3726
514470f7afed
cosmetics: Remove redundant #endif comments that are very close to the #ifdef
diego
parents:
3725
diff
changeset
|
855 #endif |
0 | 856 |
4206 | 857 #if CONFIG_H264_DEMUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
858 AVInputFormat h264_demuxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
859 "h264", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
860 NULL_IF_CONFIG_SMALL("raw H.264 video format"), |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
861 0, |
3570 | 862 h264_probe, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
863 video_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
864 ff_raw_read_partial_packet, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
865 .flags= AVFMT_GENERIC_INDEX, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
866 .extensions = "h26l,h264,264", //FIXME remove after writing mpeg4_probe |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
867 .value = CODEC_ID_H264, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
868 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
869 #endif |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
870 |
4206 | 871 #if CONFIG_H264_MUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
872 AVOutputFormat h264_muxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
873 "h264", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
874 NULL_IF_CONFIG_SMALL("raw H.264 video format"), |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
875 NULL, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
876 "h264", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
877 0, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
878 CODEC_ID_NONE, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
879 CODEC_ID_H264, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
880 NULL, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
881 raw_write_packet, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
882 .flags= AVFMT_NOTIMESTAMPS, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
883 }; |
3726
514470f7afed
cosmetics: Remove redundant #endif comments that are very close to the #ifdef
diego
parents:
3725
diff
changeset
|
884 #endif |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
885 |
4206 | 886 #if CONFIG_INGENIENT_DEMUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
887 AVInputFormat ingenient_demuxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
888 "ingenient", |
4501 | 889 NULL_IF_CONFIG_SMALL("raw Ingenient MJPEG"), |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
890 0, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
891 NULL, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
892 video_read_header, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
893 ingenient_read_packet, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
894 .flags= AVFMT_GENERIC_INDEX, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
895 .extensions = "cgi", // FIXME |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
896 .value = CODEC_ID_MJPEG, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
897 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
898 #endif |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
899 |
4206 | 900 #if CONFIG_M4V_DEMUXER |
1167 | 901 AVInputFormat m4v_demuxer = { |
0 | 902 "m4v", |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
903 NULL_IF_CONFIG_SMALL("raw MPEG-4 video format"), |
0 | 904 0, |
3725 | 905 mpeg4video_probe, /** probing for MPEG-4 data */ |
0 | 906 video_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
907 ff_raw_read_partial_packet, |
1756 | 908 .flags= AVFMT_GENERIC_INDEX, |
4103 | 909 .extensions = "m4v", |
0 | 910 .value = CODEC_ID_MPEG4, |
911 }; | |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
912 #endif |
0 | 913 |
4206 | 914 #if CONFIG_M4V_MUXER |
1167 | 915 AVOutputFormat m4v_muxer = { |
0 | 916 "m4v", |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
917 NULL_IF_CONFIG_SMALL("raw MPEG-4 video format"), |
0 | 918 NULL, |
919 "m4v", | |
920 0, | |
921 CODEC_ID_NONE, | |
922 CODEC_ID_MPEG4, | |
2305 | 923 NULL, |
0 | 924 raw_write_packet, |
1245
e59b75051ded
dont be too picky about timestampsbeing wrong if the destination container is without timestamps and raw of the raw video / raw audio sort
michael
parents:
1169
diff
changeset
|
925 .flags= AVFMT_NOTIMESTAMPS, |
0 | 926 }; |
3726
514470f7afed
cosmetics: Remove redundant #endif comments that are very close to the #ifdef
diego
parents:
3725
diff
changeset
|
927 #endif |
0 | 928 |
4206 | 929 #if CONFIG_MJPEG_DEMUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
930 AVInputFormat mjpeg_demuxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
931 "mjpeg", |
4501 | 932 NULL_IF_CONFIG_SMALL("raw MJPEG video"), |
100 | 933 0, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
934 NULL, |
100 | 935 video_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
936 ff_raw_read_partial_packet, |
1756 | 937 .flags= AVFMT_GENERIC_INDEX, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
938 .extensions = "mjpg,mjpeg", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
939 .value = CODEC_ID_MJPEG, |
100 | 940 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
941 #endif |
100 | 942 |
4206 | 943 #if CONFIG_MJPEG_MUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
944 AVOutputFormat mjpeg_muxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
945 "mjpeg", |
4501 | 946 NULL_IF_CONFIG_SMALL("raw MJPEG video"), |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
947 "video/x-mjpeg", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
948 "mjpg,mjpeg", |
100 | 949 0, |
950 CODEC_ID_NONE, | |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
951 CODEC_ID_MJPEG, |
2305 | 952 NULL, |
100 | 953 raw_write_packet, |
1245
e59b75051ded
dont be too picky about timestampsbeing wrong if the destination container is without timestamps and raw of the raw video / raw audio sort
michael
parents:
1169
diff
changeset
|
954 .flags= AVFMT_NOTIMESTAMPS, |
100 | 955 }; |
3726
514470f7afed
cosmetics: Remove redundant #endif comments that are very close to the #ifdef
diego
parents:
3725
diff
changeset
|
956 #endif |
100 | 957 |
4206 | 958 #if CONFIG_MLP_DEMUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
959 AVInputFormat mlp_demuxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
960 "mlp", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
961 NULL_IF_CONFIG_SMALL("raw MLP"), |
0 | 962 0, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
963 NULL, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
964 audio_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
965 ff_raw_read_partial_packet, |
1756 | 966 .flags= AVFMT_GENERIC_INDEX, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
967 .extensions = "mlp", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
968 .value = CODEC_ID_MLP, |
0 | 969 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
970 #endif |
0 | 971 |
4206 | 972 #if CONFIG_MPEG1VIDEO_MUXER |
1167 | 973 AVOutputFormat mpeg1video_muxer = { |
0 | 974 "mpeg1video", |
4501 | 975 NULL_IF_CONFIG_SMALL("raw MPEG-1 video"), |
0 | 976 "video/x-mpeg", |
814 | 977 "mpg,mpeg,m1v", |
0 | 978 0, |
3289 | 979 CODEC_ID_NONE, |
0 | 980 CODEC_ID_MPEG1VIDEO, |
2305 | 981 NULL, |
0 | 982 raw_write_packet, |
1245
e59b75051ded
dont be too picky about timestampsbeing wrong if the destination container is without timestamps and raw of the raw video / raw audio sort
michael
parents:
1169
diff
changeset
|
983 .flags= AVFMT_NOTIMESTAMPS, |
0 | 984 }; |
3726
514470f7afed
cosmetics: Remove redundant #endif comments that are very close to the #ifdef
diego
parents:
3725
diff
changeset
|
985 #endif |
0 | 986 |
4206 | 987 #if CONFIG_MPEG2VIDEO_MUXER |
1167 | 988 AVOutputFormat mpeg2video_muxer = { |
637
76e36d97a27a
Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents:
576
diff
changeset
|
989 "mpeg2video", |
4501 | 990 NULL_IF_CONFIG_SMALL("raw MPEG-2 video"), |
637
76e36d97a27a
Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents:
576
diff
changeset
|
991 NULL, |
76e36d97a27a
Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents:
576
diff
changeset
|
992 "m2v", |
76e36d97a27a
Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents:
576
diff
changeset
|
993 0, |
3289 | 994 CODEC_ID_NONE, |
637
76e36d97a27a
Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents:
576
diff
changeset
|
995 CODEC_ID_MPEG2VIDEO, |
2305 | 996 NULL, |
637
76e36d97a27a
Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents:
576
diff
changeset
|
997 raw_write_packet, |
1245
e59b75051ded
dont be too picky about timestampsbeing wrong if the destination container is without timestamps and raw of the raw video / raw audio sort
michael
parents:
1169
diff
changeset
|
998 .flags= AVFMT_NOTIMESTAMPS, |
637
76e36d97a27a
Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents:
576
diff
changeset
|
999 }; |
3726
514470f7afed
cosmetics: Remove redundant #endif comments that are very close to the #ifdef
diego
parents:
3725
diff
changeset
|
1000 #endif |
637
76e36d97a27a
Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents:
576
diff
changeset
|
1001 |
4206 | 1002 #if CONFIG_MPEGVIDEO_DEMUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1003 AVInputFormat mpegvideo_demuxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1004 "mpegvideo", |
4501 | 1005 NULL_IF_CONFIG_SMALL("raw MPEG video"), |
0 | 1006 0, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1007 mpegvideo_probe, |
0 | 1008 video_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
1009 ff_raw_read_partial_packet, |
1756 | 1010 .flags= AVFMT_GENERIC_INDEX, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1011 .value = CODEC_ID_MPEG1VIDEO, |
868
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
1012 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
1013 #endif |
868
c6b1dde68f3a
Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents:
858
diff
changeset
|
1014 |
4548
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
1015 #if CONFIG_CAVSVIDEO_DEMUXER |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
1016 AVInputFormat cavsvideo_demuxer = { |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
1017 "cavsvideo", |
4563 | 1018 NULL_IF_CONFIG_SMALL("raw Chinese AVS video"), |
4548
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
1019 0, |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
1020 cavsvideo_probe, |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
1021 video_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
1022 ff_raw_read_partial_packet, |
4548
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
1023 .flags= AVFMT_GENERIC_INDEX, |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
1024 .value = CODEC_ID_CAVS, |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
1025 }; |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
1026 #endif |
2c9ebc4029ae
add raw demuxer for Chinese AVS elementary streams
stefang
parents:
4510
diff
changeset
|
1027 |
4206 | 1028 #if CONFIG_NULL_MUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1029 AVOutputFormat null_muxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1030 "null", |
4501 | 1031 NULL_IF_CONFIG_SMALL("raw null video format"), |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1032 NULL, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1033 NULL, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1034 0, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1035 #ifdef WORDS_BIGENDIAN |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1036 CODEC_ID_PCM_S16BE, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1037 #else |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1038 CODEC_ID_PCM_S16LE, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1039 #endif |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1040 CODEC_ID_RAWVIDEO, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1041 NULL, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1042 null_write_packet, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1043 .flags = AVFMT_NOFILE | AVFMT_RAWPICTURE | AVFMT_NOTIMESTAMPS, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1044 }; |
3726
514470f7afed
cosmetics: Remove redundant #endif comments that are very close to the #ifdef
diego
parents:
3725
diff
changeset
|
1045 #endif |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1046 |
4206 | 1047 #if CONFIG_RAWVIDEO_DEMUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1048 AVInputFormat rawvideo_demuxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1049 "rawvideo", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1050 NULL_IF_CONFIG_SMALL("raw video format"), |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1051 0, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1052 NULL, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1053 raw_read_header, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1054 rawvideo_read_packet, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1055 .flags= AVFMT_GENERIC_INDEX, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1056 .extensions = "yuv,cif,qcif,rgb", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1057 .value = CODEC_ID_RAWVIDEO, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1058 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
1059 #endif |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1060 |
4206 | 1061 #if CONFIG_RAWVIDEO_MUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1062 AVOutputFormat rawvideo_muxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1063 "rawvideo", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1064 NULL_IF_CONFIG_SMALL("raw video format"), |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1065 NULL, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1066 "yuv,rgb", |
0 | 1067 0, |
3289 | 1068 CODEC_ID_NONE, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1069 CODEC_ID_RAWVIDEO, |
2305 | 1070 NULL, |
0 | 1071 raw_write_packet, |
1245
e59b75051ded
dont be too picky about timestampsbeing wrong if the destination container is without timestamps and raw of the raw video / raw audio sort
michael
parents:
1169
diff
changeset
|
1072 .flags= AVFMT_NOTIMESTAMPS, |
0 | 1073 }; |
3726
514470f7afed
cosmetics: Remove redundant #endif comments that are very close to the #ifdef
diego
parents:
3725
diff
changeset
|
1074 #endif |
0 | 1075 |
4206 | 1076 #if CONFIG_ROQ_MUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1077 AVOutputFormat roq_muxer = |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1078 { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1079 "RoQ", |
4501 | 1080 NULL_IF_CONFIG_SMALL("raw id RoQ format"), |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1081 NULL, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1082 "roq", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1083 0, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1084 CODEC_ID_ROQ_DPCM, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1085 CODEC_ID_ROQ, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1086 roq_write_header, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1087 raw_write_packet, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1088 }; |
3726
514470f7afed
cosmetics: Remove redundant #endif comments that are very close to the #ifdef
diego
parents:
3725
diff
changeset
|
1089 #endif |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1090 |
4206 | 1091 #if CONFIG_SHORTEN_DEMUXER |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1092 AVInputFormat shorten_demuxer = { |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1093 "shn", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1094 NULL_IF_CONFIG_SMALL("raw Shorten"), |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1095 0, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1096 NULL, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1097 audio_read_header, |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
1098 ff_raw_read_partial_packet, |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1099 .flags= AVFMT_GENERIC_INDEX, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1100 .extensions = "shn", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1101 .value = CODEC_ID_SHORTEN, |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1102 }; |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
1103 #endif |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1104 |
4206 | 1105 #if CONFIG_VC1_DEMUXER |
1773 | 1106 AVInputFormat vc1_demuxer = { |
1107 "vc1", | |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
1108 NULL_IF_CONFIG_SMALL("raw VC-1"), |
1773 | 1109 0, |
1110 NULL /* vc1_probe */, | |
1111 video_read_header, | |
4610
41542d2edcf4
Separate the raw FLAC demuxer from raw.c and put in a new file,
jbr
parents:
4577
diff
changeset
|
1112 ff_raw_read_partial_packet, |
1773 | 1113 .extensions = "vc1", |
1114 .value = CODEC_ID_VC1, | |
1115 }; | |
3729
ed875181c3fa
Surround AVInputFormat declarations with format-specific #ifdefs.
diego
parents:
3728
diff
changeset
|
1116 #endif |
1773 | 1117 |
3725 | 1118 /* PCM formats */ |
277
a313e1080322
disable encoders where appropriate (patch courtesy of BERO
melanson
parents:
241
diff
changeset
|
1119 |
306 | 1120 #define PCMINPUTDEF(name, long_name, ext, codec) \ |
1167 | 1121 AVInputFormat pcm_ ## name ## _demuxer = {\ |
277
a313e1080322
disable encoders where appropriate (patch courtesy of BERO
melanson
parents:
241
diff
changeset
|
1122 #name,\ |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
1123 NULL_IF_CONFIG_SMALL(long_name),\ |
277
a313e1080322
disable encoders where appropriate (patch courtesy of BERO
melanson
parents:
241
diff
changeset
|
1124 0,\ |
a313e1080322
disable encoders where appropriate (patch courtesy of BERO
melanson
parents:
241
diff
changeset
|
1125 NULL,\ |
a313e1080322
disable encoders where appropriate (patch courtesy of BERO
melanson
parents:
241
diff
changeset
|
1126 raw_read_header,\ |
a313e1080322
disable encoders where appropriate (patch courtesy of BERO
melanson
parents:
241
diff
changeset
|
1127 raw_read_packet,\ |
3484 | 1128 NULL,\ |
306 | 1129 pcm_read_seek,\ |
1756 | 1130 .flags= AVFMT_GENERIC_INDEX,\ |
277
a313e1080322
disable encoders where appropriate (patch courtesy of BERO
melanson
parents:
241
diff
changeset
|
1131 .extensions = ext,\ |
a313e1080322
disable encoders where appropriate (patch courtesy of BERO
melanson
parents:
241
diff
changeset
|
1132 .value = codec,\ |
a313e1080322
disable encoders where appropriate (patch courtesy of BERO
melanson
parents:
241
diff
changeset
|
1133 }; |
a313e1080322
disable encoders where appropriate (patch courtesy of BERO
melanson
parents:
241
diff
changeset
|
1134 |
1121
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1135 #define PCMOUTPUTDEF(name, long_name, ext, codec) \ |
1167 | 1136 AVOutputFormat pcm_ ## name ## _muxer = {\ |
0 | 1137 #name,\ |
3424
7a0230981402
Make long_names in lavf/lavdev optional depending on CONFIG_SMALL.
diego
parents:
3405
diff
changeset
|
1138 NULL_IF_CONFIG_SMALL(long_name),\ |
0 | 1139 NULL,\ |
1140 ext,\ | |
1141 0,\ | |
1142 codec,\ | |
3289 | 1143 CODEC_ID_NONE,\ |
2305 | 1144 NULL,\ |
0 | 1145 raw_write_packet,\ |
1245
e59b75051ded
dont be too picky about timestampsbeing wrong if the destination container is without timestamps and raw of the raw video / raw audio sort
michael
parents:
1169
diff
changeset
|
1146 .flags= AVFMT_NOTIMESTAMPS,\ |
0 | 1147 }; |
1121
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1148 |
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1149 |
4206 | 1150 #if !CONFIG_MUXERS && CONFIG_DEMUXERS |
1121
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1151 #define PCMDEF(name, long_name, ext, codec) \ |
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1152 PCMINPUTDEF(name, long_name, ext, codec) |
4206 | 1153 #elif CONFIG_MUXERS && !CONFIG_DEMUXERS |
1121
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1154 #define PCMDEF(name, long_name, ext, codec) \ |
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1155 PCMOUTPUTDEF(name, long_name, ext, codec) |
4206 | 1156 #elif CONFIG_MUXERS && CONFIG_DEMUXERS |
1121
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1157 #define PCMDEF(name, long_name, ext, codec) \ |
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1158 PCMINPUTDEF(name, long_name, ext, codec)\ |
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1159 PCMOUTPUTDEF(name, long_name, ext, codec) |
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1160 #else |
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1161 #define PCMDEF(name, long_name, ext, codec) |
787a70a8b867
Fix compilation with all combinations of --disable-(de)muxers.
diego
parents:
1078
diff
changeset
|
1162 #endif |
0 | 1163 |
1164 #ifdef WORDS_BIGENDIAN | |
1165 #define BE_DEF(s) s | |
1166 #define LE_DEF(s) NULL | |
1167 #else | |
1168 #define BE_DEF(s) NULL | |
1169 #define LE_DEF(s) s | |
1170 #endif | |
1171 | |
3757
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1172 PCMDEF(f64be, "PCM 64 bit floating-point big-endian format", |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1173 NULL, CODEC_ID_PCM_F64BE) |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1174 |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1175 PCMDEF(f64le, "PCM 64 bit floating-point little-endian format", |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1176 NULL, CODEC_ID_PCM_F64LE) |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1177 |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1178 PCMDEF(f32be, "PCM 32 bit floating-point big-endian format", |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1179 NULL, CODEC_ID_PCM_F32BE) |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1180 |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1181 PCMDEF(f32le, "PCM 32 bit floating-point little-endian format", |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1182 NULL, CODEC_ID_PCM_F32LE) |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1183 |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1184 PCMDEF(s32be, "PCM signed 32 bit big-endian format", |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1185 NULL, CODEC_ID_PCM_S32BE) |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1186 |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1187 PCMDEF(s32le, "PCM signed 32 bit little-endian format", |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1188 NULL, CODEC_ID_PCM_S32LE) |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1189 |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1190 PCMDEF(s24be, "PCM signed 24 bit big-endian format", |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1191 NULL, CODEC_ID_PCM_S24BE) |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1192 |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1193 PCMDEF(s24le, "PCM signed 24 bit little-endian format", |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1194 NULL, CODEC_ID_PCM_S24LE) |
0 | 1195 |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1196 PCMDEF(s16be, "PCM signed 16 bit big-endian format", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1197 BE_DEF("sw"), CODEC_ID_PCM_S16BE) |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1198 |
3543 | 1199 PCMDEF(s16le, "PCM signed 16 bit little-endian format", |
0 | 1200 LE_DEF("sw"), CODEC_ID_PCM_S16LE) |
1201 | |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1202 PCMDEF(s8, "PCM signed 8 bit format", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1203 "sb", CODEC_ID_PCM_S8) |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1204 |
3757
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1205 PCMDEF(u32be, "PCM unsigned 32 bit big-endian format", |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1206 NULL, CODEC_ID_PCM_U32BE) |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1207 |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1208 PCMDEF(u32le, "PCM unsigned 32 bit little-endian format", |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1209 NULL, CODEC_ID_PCM_U32LE) |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1210 |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1211 PCMDEF(u24be, "PCM unsigned 24 bit big-endian format", |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1212 NULL, CODEC_ID_PCM_U24BE) |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1213 |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1214 PCMDEF(u24le, "PCM unsigned 24 bit little-endian format", |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1215 NULL, CODEC_ID_PCM_U24LE) |
7ab85dd1ef03
Add raw muxers/demuxers for F64/F32/S32/S24/U32/U24 PCM audio.
pross
parents:
3730
diff
changeset
|
1216 |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1217 PCMDEF(u16be, "PCM unsigned 16 bit big-endian format", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1218 BE_DEF("uw"), CODEC_ID_PCM_U16BE) |
0 | 1219 |
3543 | 1220 PCMDEF(u16le, "PCM unsigned 16 bit little-endian format", |
0 | 1221 LE_DEF("uw"), CODEC_ID_PCM_U16LE) |
1222 | |
3543 | 1223 PCMDEF(u8, "PCM unsigned 8 bit format", |
0 | 1224 "ub", CODEC_ID_PCM_U8) |
1225 | |
3543 | 1226 PCMDEF(alaw, "PCM A-law format", |
0 | 1227 "al", CODEC_ID_PCM_ALAW) |
1228 | |
3546
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1229 PCMDEF(mulaw, "PCM mu-law format", |
45c3d2b2b2fb
Alphabetically order AVInputFormat/AVOutputFormat declarations.
diego
parents:
3545
diff
changeset
|
1230 "ul", CODEC_ID_PCM_MULAW) |