annotate raw.c @ 1680:9240521ca4fd libavformat

this is wrong but it was that way before the AVCodecTag change, only reason why it didnt broke regressions was that the table wasnt used
author michael
date Sun, 21 Jan 2007 12:30:44 +0000
parents acf4dbb1a7e6
children 5d72afc6c8aa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
1 /*
1415
3b00fb8ef8e4 replace coder/decoder file description in libavformat by muxer/demuxer
aurel
parents: 1399
diff changeset
2 * RAW muxer and demuxer
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
9 * modify it under the terms of the GNU Lesser General Public
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
16 * Lesser General Public License for more details.
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
17 *
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
21 */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
22 #include "avformat.h"
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
23
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
24 #ifdef CONFIG_MUXERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
25 /* simple formats */
64
b0e0eb595e29 * static,const,compiler warning cleanup
kabi
parents: 63
diff changeset
26 static int raw_write_header(struct AVFormatContext *s)
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
27 {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
28 return 0;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
29 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
30
1078
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
31 static int flac_write_header(struct AVFormatContext *s)
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
32 {
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
33 static const uint8_t header[8] = {
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
34 0x66, 0x4C, 0x61, 0x43, 0x80, 0x00, 0x00, 0x22
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
35 };
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
36 uint8_t *streaminfo = s->streams[0]->codec->extradata;
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
37 int len = s->streams[0]->codec->extradata_size;
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
38 if(streaminfo != NULL && len > 0) {
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
39 put_buffer(&s->pb, header, 8);
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
40 put_buffer(&s->pb, streaminfo, len);
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
41 }
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
42 return 0;
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
43 }
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
44
468
60f897e8dd2d pass AVPacket into av_write_frame()
michael
parents: 464
diff changeset
45 static int raw_write_packet(struct AVFormatContext *s, AVPacket *pkt)
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
46 {
468
60f897e8dd2d pass AVPacket into av_write_frame()
michael
parents: 464
diff changeset
47 put_buffer(&s->pb, pkt->data, pkt->size);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
48 put_flush_packet(&s->pb);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
49 return 0;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
50 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
51
64
b0e0eb595e29 * static,const,compiler warning cleanup
kabi
parents: 63
diff changeset
52 static int raw_write_trailer(struct AVFormatContext *s)
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
53 {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
54 return 0;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
55 }
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
56 #endif //CONFIG_MUXERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
57
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
58 /* raw input */
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 64
diff changeset
59 static int raw_read_header(AVFormatContext *s, AVFormatParameters *ap)
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
60 {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
61 AVStream *st;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
62 int id;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
63
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
64 st = av_new_stream(s, 0);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
65 if (!st)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
66 return AVERROR_NOMEM;
1003
2d57ce58f576 simplify AVFormatParameters NULL checks
michael
parents: 985
diff changeset
67
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
68 id = s->iformat->value;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
69 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
70 st->codec->codec_type = CODEC_TYPE_VIDEO;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
71 } 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
72 st->codec->codec_type = CODEC_TYPE_AUDIO;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
73 }
820
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
74 st->codec->codec_id = id;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
75
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 switch(st->codec->codec_type) {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
77 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
78 st->codec->sample_rate = ap->sample_rate;
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
79 st->codec->channels = ap->channels;
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
80 av_set_pts_info(st, 64, 1, st->codec->sample_rate);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
81 break;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
82 case CODEC_TYPE_VIDEO:
743
af4e24d6310c switch to native time bases
michael
parents: 686
diff changeset
83 av_set_pts_info(st, 64, ap->time_base.num, ap->time_base.den);
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->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
85 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
86 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
87 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
88 st->codec->pix_fmt= PIX_FMT_YUV420P;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
89 break;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
90 default:
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
91 return -1;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
92 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
93 return 0;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
94 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
95
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
96 #define RAW_PACKET_SIZE 1024
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
97
64
b0e0eb595e29 * static,const,compiler warning cleanup
kabi
parents: 63
diff changeset
98 static int raw_read_packet(AVFormatContext *s, AVPacket *pkt)
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
99 {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
100 int ret, size;
28
64678c053566 removed warnings
bellard
parents: 0
diff changeset
101 // AVStream *st = s->streams[0];
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
102
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
103 size= RAW_PACKET_SIZE;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
104
775
c5077fdab490 AVPacket.pos
michael
parents: 749
diff changeset
105 ret= av_get_packet(&s->pb, pkt, size);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
106
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
107 pkt->stream_index = 0;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
108 if (ret <= 0) {
482
0fdc96c2f2fe sweeping change from -EIO -> AVERROR_IO
melanson
parents: 473
diff changeset
109 return AVERROR_IO;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
110 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
111 /* note: we need to modify the packet size here to handle the last
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
112 packet */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
113 pkt->size = ret;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
114 return ret;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
115 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
116
389
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
117 static int raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt)
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
118 {
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
119 int ret, size;
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
120
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
121 size = RAW_PACKET_SIZE;
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
122
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
123 if (av_new_packet(pkt, size) < 0)
482
0fdc96c2f2fe sweeping change from -EIO -> AVERROR_IO
melanson
parents: 473
diff changeset
124 return AVERROR_IO;
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
125
775
c5077fdab490 AVPacket.pos
michael
parents: 749
diff changeset
126 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
127 pkt->stream_index = 0;
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
128 ret = get_partial_buffer(&s->pb, pkt->data, size);
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
129 if (ret <= 0) {
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
130 av_free_packet(pkt);
482
0fdc96c2f2fe sweeping change from -EIO -> AVERROR_IO
melanson
parents: 473
diff changeset
131 return AVERROR_IO;
389
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
132 }
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
133 pkt->size = ret;
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
134 return ret;
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
135 }
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
136
868
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
137 // 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
138 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
139 {
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
140 int ret, size, w, h, unk1, unk2;
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
141
868
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
142 if (get_le32(&s->pb) != MKTAG('M', 'J', 'P', 'G'))
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
143 return AVERROR_IO; // FIXME
868
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
144
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
145 size = get_le32(&s->pb);
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
146
868
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
147 w = get_le16(&s->pb);
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
148 h = get_le16(&s->pb);
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
149
868
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
150 url_fskip(&s->pb, 8); // zero + size (padded?)
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
151 url_fskip(&s->pb, 2);
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
152 unk1 = get_le16(&s->pb);
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
153 unk2 = get_le16(&s->pb);
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
154 url_fskip(&s->pb, 22); // ascii timestamp
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
155
868
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
156 av_log(NULL, AV_LOG_DEBUG, "Ingenient packet: size=%d, width=%d, height=%d, unk1=%d unk2=%d\n",
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
157 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
158
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
159 if (av_new_packet(pkt, size) < 0)
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
160 return AVERROR_IO;
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
161
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
162 pkt->pos = url_ftell(&s->pb);
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
163 pkt->stream_index = 0;
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
164 ret = get_buffer(&s->pb, pkt->data, size);
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
165 if (ret <= 0) {
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
166 av_free_packet(pkt);
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
167 return AVERROR_IO;
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
168 }
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
169 pkt->size = ret;
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
170 return ret;
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
171 }
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
172
64
b0e0eb595e29 * static,const,compiler warning cleanup
kabi
parents: 63
diff changeset
173 static int raw_read_close(AVFormatContext *s)
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
174 {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
175 return 0;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
176 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
177
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
178 int pcm_read_seek(AVFormatContext *s,
558
89bd76208427 100l (forgoten seeking functions)
michael
parents: 537
diff changeset
179 int stream_index, int64_t timestamp, int flags)
306
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
180 {
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
181 AVStream *st;
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
182 int block_align, byte_rate;
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
183 int64_t pos;
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
184
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
185 st = s->streams[0];
1399
5a3003271ad8 simplify pcm read seek, use av_get_bits_per_sample
bcoudurier
parents: 1358
diff changeset
186
5a3003271ad8 simplify pcm read seek, use av_get_bits_per_sample
bcoudurier
parents: 1358
diff changeset
187 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
188 (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
189 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
190 block_align * st->codec->sample_rate;
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
191
306
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
192 if (block_align <= 0 || byte_rate <= 0)
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
193 return -1;
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
194
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
195 /* compute the position by aligning it to block_align */
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
196 pos = av_rescale_rnd(timestamp * byte_rate,
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
197 st->time_base.num,
558
89bd76208427 100l (forgoten seeking functions)
michael
parents: 537
diff changeset
198 st->time_base.den * (int64_t)block_align,
89bd76208427 100l (forgoten seeking functions)
michael
parents: 537
diff changeset
199 (flags & AVSEEK_FLAG_BACKWARD) ? AV_ROUND_DOWN : AV_ROUND_UP);
89bd76208427 100l (forgoten seeking functions)
michael
parents: 537
diff changeset
200 pos *= block_align;
306
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
201
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
202 /* recompute exact position */
464
09e46bfc859c cur_dts in native timebase
michael
parents: 463
diff changeset
203 st->cur_dts = av_rescale(pos, st->time_base.den, byte_rate * (int64_t)st->time_base.num);
306
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
204 url_fseek(&s->pb, pos + s->data_offset, SEEK_SET);
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
205 return 0;
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
206 }
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
207
63
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
208 /* ac3 read */
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
209 static int ac3_read_header(AVFormatContext *s,
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
210 AVFormatParameters *ap)
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
211 {
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
212 AVStream *st;
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
213
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
214 st = av_new_stream(s, 0);
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
215 if (!st)
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
216 return AVERROR_NOMEM;
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
217
820
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
218 st->codec->codec_type = CODEC_TYPE_AUDIO;
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
219 st->codec->codec_id = CODEC_ID_AC3;
306
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
220 st->need_parsing = 1;
63
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
221 /* the parameters will be extracted from the compressed bitstream */
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
222 return 0;
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
223 }
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
224
686
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
225 static int shorten_read_header(AVFormatContext *s,
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
226 AVFormatParameters *ap)
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
227 {
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
228 AVStream *st;
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
229
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
230 st = av_new_stream(s, 0);
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
231 if (!st)
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
232 return AVERROR_NOMEM;
820
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
233 st->codec->codec_type = CODEC_TYPE_AUDIO;
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
234 st->codec->codec_id = CODEC_ID_SHORTEN;
686
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
235 st->need_parsing = 1;
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
236 /* the parameters will be extracted from the compressed bitstream */
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
237 return 0;
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
238 }
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
239
1070
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
240 /* flac read */
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
241 static int flac_read_header(AVFormatContext *s,
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
242 AVFormatParameters *ap)
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
243 {
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
244 AVStream *st;
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
245
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
246 st = av_new_stream(s, 0);
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
247 if (!st)
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
248 return AVERROR_NOMEM;
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
249 st->codec->codec_type = CODEC_TYPE_AUDIO;
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
250 st->codec->codec_id = CODEC_ID_FLAC;
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
251 st->need_parsing = 1;
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
252 /* the parameters will be extracted from the compressed bitstream */
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
253 return 0;
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
254 }
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
255
496
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
256 /* dts read */
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
257 static int dts_read_header(AVFormatContext *s,
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
258 AVFormatParameters *ap)
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
259 {
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
260 AVStream *st;
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
261
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
262 st = av_new_stream(s, 0);
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
263 if (!st)
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
264 return AVERROR_NOMEM;
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
265
820
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
266 st->codec->codec_type = CODEC_TYPE_AUDIO;
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
267 st->codec->codec_id = CODEC_ID_DTS;
496
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
268 st->need_parsing = 1;
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
269 /* the parameters will be extracted from the compressed bitstream */
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
270 return 0;
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
271 }
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
272
931
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
273 /* aac read */
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
274 static int aac_read_header(AVFormatContext *s,
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
275 AVFormatParameters *ap)
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
276 {
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
277 AVStream *st;
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
278
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
279 st = av_new_stream(s, 0);
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
280 if (!st)
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
281 return AVERROR_NOMEM;
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
282
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
283 st->codec->codec_type = CODEC_TYPE_AUDIO;
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
284 st->codec->codec_id = CODEC_ID_AAC;
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
285 st->need_parsing = 1;
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
286 /* the parameters will be extracted from the compressed bitstream */
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
287 return 0;
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
288 }
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
289
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
290 /* mpeg1/h263 input */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
291 static int video_read_header(AVFormatContext *s,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
292 AVFormatParameters *ap)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
293 {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
294 AVStream *st;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
295
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
296 st = av_new_stream(s, 0);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
297 if (!st)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
298 return AVERROR_NOMEM;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
299
820
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
300 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
301 st->codec->codec_id = s->iformat->value;
306
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
302 st->need_parsing = 1;
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
303
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
304 /* for mjpeg, specify frame rate */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
305 /* for mpeg4 specify it too (most mpeg4 streams dont have the fixed_vop_rate set ...)*/
1003
2d57ce58f576 simplify AVFormatParameters NULL checks
michael
parents: 985
diff changeset
306 if (ap->time_base.num) {
745
a03f1f7497ad always honor the user specified frame rate if set
michael
parents: 743
diff changeset
307 av_set_pts_info(st, 64, ap->time_base.num, ap->time_base.den);
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
308 } 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
309 st->codec->codec_id == CODEC_ID_MPEG4 ||
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
310 st->codec->codec_id == CODEC_ID_H264) {
745
a03f1f7497ad always honor the user specified frame rate if set
michael
parents: 743
diff changeset
311 av_set_pts_info(st, 64, 1, 25);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
312 }
745
a03f1f7497ad always honor the user specified frame rate if set
michael
parents: 743
diff changeset
313
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
314 return 0;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
315 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
316
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
317 #define SEQ_START_CODE 0x000001b3
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
318 #define GOP_START_CODE 0x000001b8
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
319 #define PICTURE_START_CODE 0x00000100
924
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
320 #define SLICE_START_CODE 0x00000101
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
321 #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
322 #define VIDEO_ID 0x000001e0
7f8b1a1ac020 can't have PES headers in MPEG video elementary streams so fail probe
mru
parents: 939
diff changeset
323 #define AUDIO_ID 0x000001c0
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
324
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
325 static int mpegvideo_probe(AVProbeData *p)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
326 {
924
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
327 uint32_t code= -1;
985
7f8b1a1ac020 can't have PES headers in MPEG video elementary streams so fail probe
mru
parents: 939
diff changeset
328 int pic=0, seq=0, slice=0, pspack=0, pes=0;
924
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
329 int i;
49
3e7e13e08b27 avoid too many false detections
bellard
parents: 28
diff changeset
330
924
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
331 for(i=0; i<p->buf_size; i++){
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
332 code = (code<<8) + p->buf[i];
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
333 if ((code & 0xffffff00) == 0x100) {
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
334 switch(code){
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
335 case SEQ_START_CODE: seq++; break;
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
336 case PICTURE_START_CODE: pic++; break;
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
337 case SLICE_START_CODE: slice++; break;
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
338 case PACK_START_CODE: pspack++; break;
985
7f8b1a1ac020 can't have PES headers in MPEG video elementary streams so fail probe
mru
parents: 939
diff changeset
339 case VIDEO_ID:
7f8b1a1ac020 can't have PES headers in MPEG video elementary streams so fail probe
mru
parents: 939
diff changeset
340 case AUDIO_ID: pes++; break;
924
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
341 }
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
342 }
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
343 }
985
7f8b1a1ac020 can't have PES headers in MPEG video elementary streams so fail probe
mru
parents: 939
diff changeset
344 if(seq && seq*9<=pic*10 && pic*9<=slice*10 && !pspack && !pes)
924
6a9265af0009 improve mpeg1/2-es detection
michael
parents: 896
diff changeset
345 return AVPROBE_SCORE_MAX/2+1; // +1 for .mpg
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
346 return 0;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
347 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
348
1463
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
349 #define VIDEO_OBJECT_START_CODE 0x00000100
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
350 #define VIDEO_OBJECT_LAYER_START_CODE 0x00000120
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
351 #define VISUAL_OBJECT_START_CODE 0x000001b5
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
352 #define VOP_START_CODE 0x000001b6
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
353
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
354 static int mpeg4video_probe(AVProbeData *probe_packet)
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
355 {
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
356 uint32_t temp_buffer= -1;
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
357 int VO=0, VOL=0, VOP = 0, VISO = 0;
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
358 int i;
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
359
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
360 for(i=0; i<probe_packet->buf_size; i++){
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
361 temp_buffer = (temp_buffer<<8) + probe_packet->buf[i];
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
362 if ((temp_buffer & 0xffffff00) == 0x100) {
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
363 switch(temp_buffer){
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
364 case VOP_START_CODE: VOP++; break;
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
365 case VISUAL_OBJECT_START_CODE: VISO++; break;
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
366 }
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
367 switch(temp_buffer & 0xfffffff0){
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
368 case VIDEO_OBJECT_START_CODE: VO++; break;
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
369 case VIDEO_OBJECT_LAYER_START_CODE: VOL++; break;
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
370 }
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
371 }
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
372 }
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
373
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
374 if ( VOP >= VISO && VOP >= VOL && VO >= VOL && VOL > 0)
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
375 return AVPROBE_SCORE_MAX/2;
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
376 return 0;
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
135
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
379 static int h263_probe(AVProbeData *p)
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
380 {
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
381 int code;
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
382 const uint8_t *d;
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
383
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
384 if (p->buf_size < 6)
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
385 return 0;
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
386 d = p->buf;
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
387 code = (d[0] << 14) | (d[1] << 6) | (d[2] >> 2);
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
388 if (code == 0x20) {
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
389 return 50;
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
390 }
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
391 return 0;
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
392 }
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
393
473
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
394 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
395 {
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
396 int code;
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
397 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
398
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
399 if (p->buf_size < 6)
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
400 return 0;
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
401 d = p->buf;
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
402 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
403 if (code == 0x10) {
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
404 return 50;
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
405 }
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
406 return 0;
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
407 }
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
408
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
409 AVInputFormat shorten_demuxer = {
686
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
410 "shn",
868
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
411 "raw shorten",
686
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
412 0,
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
413 NULL,
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
414 shorten_read_header,
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
415 raw_read_partial_packet,
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
416 raw_read_close,
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
417 .extensions = "shn",
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
418 };
e2687b784c3a shorten decoder by (Jeff Muizelaar <jrmuizel gmail com>)
michael
parents: 637
diff changeset
419
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
420 AVInputFormat flac_demuxer = {
1070
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
421 "flac",
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
422 "raw flac",
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
423 0,
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
424 NULL,
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
425 flac_read_header,
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
426 raw_read_partial_packet,
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
427 raw_read_close,
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
428 .extensions = "flac",
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
429 };
26d75e74c7b7 Add support for raw flac decoding based on the .flac suffix of input files.
banan
parents: 1003
diff changeset
430
1078
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
431 #ifdef CONFIG_MUXERS
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
432 AVOutputFormat flac_muxer = {
1078
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
433 "flac",
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
434 "raw flac",
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
435 "audio/x-flac",
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
436 "flac",
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
437 0,
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
438 CODEC_ID_FLAC,
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
439 0,
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
440 flac_write_header,
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
441 raw_write_packet,
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
442 raw_write_trailer,
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
443 .flags= AVFMT_NOTIMESTAMPS,
1078
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
444 };
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
445 #endif //CONFIG_MUXERS
0bc9422cc0ad Raw flac muxer, patch by Justin Ruggles (jruggle earthlink net). Can be
banan
parents: 1070
diff changeset
446
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
447 AVInputFormat ac3_demuxer = {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
448 "ac3",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
449 "raw ac3",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
450 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
451 NULL,
63
8329ba7cbd01 raw ac3 auto detects parameters
bellard
parents: 49
diff changeset
452 ac3_read_header,
389
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
453 raw_read_partial_packet,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
454 raw_read_close,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
455 .extensions = "ac3",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
456 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
457
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
458 #ifdef CONFIG_MUXERS
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
459 AVOutputFormat ac3_muxer = {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
460 "ac3",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
461 "raw ac3",
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
462 "audio/x-ac3",
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
463 "ac3",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
464 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
465 CODEC_ID_AC3,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
466 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
467 raw_write_header,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
468 raw_write_packet,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
469 raw_write_trailer,
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
470 .flags= AVFMT_NOTIMESTAMPS,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
471 };
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
472 #endif //CONFIG_MUXERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
473
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
474 AVInputFormat dts_demuxer = {
496
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
475 "dts",
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
476 "raw dts",
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
477 0,
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
478 NULL,
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
479 dts_read_header,
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
480 raw_read_partial_packet,
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
481 raw_read_close,
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
482 .extensions = "dts",
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
483 };
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
484
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
485 AVInputFormat aac_demuxer = {
931
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
486 "aac",
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
487 "ADTS AAC",
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
488 0,
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
489 NULL,
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
490 aac_read_header,
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
491 raw_read_partial_packet,
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
492 raw_read_close,
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
493 .extensions = "aac",
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
494 };
7420a756dc7a read/write adts aac
mru
parents: 930
diff changeset
495
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
496 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
497 "h261",
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
498 "raw h261",
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
499 0,
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
500 h261_probe,
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
501 video_read_header,
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
502 raw_read_partial_packet,
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
503 raw_read_close,
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
504 .extensions = "h261",
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
505 .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
506 };
e0a66a870b7f h261 decoder by (Maarten Daniels <maarten.daniels at student dot luc dot ac dot be>)
michael
parents: 468
diff changeset
507
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
508 #ifdef CONFIG_MUXERS
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
509 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
510 "h261",
f701ba509d0c H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents: 567
diff changeset
511 "raw h261",
f701ba509d0c H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents: 567
diff changeset
512 "video/x-h261",
f701ba509d0c H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents: 567
diff changeset
513 "h261",
f701ba509d0c H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents: 567
diff changeset
514 0,
f701ba509d0c H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents: 567
diff changeset
515 0,
f701ba509d0c H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents: 567
diff changeset
516 CODEC_ID_H261,
f701ba509d0c H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents: 567
diff changeset
517 raw_write_header,
f701ba509d0c H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents: 567
diff changeset
518 raw_write_packet,
f701ba509d0c H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents: 567
diff changeset
519 raw_write_trailer,
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
520 .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
521 };
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
522 #endif //CONFIG_MUXERS
576
f701ba509d0c H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
michael
parents: 567
diff changeset
523
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
524 AVInputFormat h263_demuxer = {
135
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
525 "h263",
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
526 "raw h263",
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
527 0,
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
528 h263_probe,
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
529 video_read_header,
389
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
530 raw_read_partial_packet,
135
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
531 raw_read_close,
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
532 // .extensions = "h263", //FIXME remove after writing mpeg4_probe
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
533 .value = CODEC_ID_H263,
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
534 };
56590088f801 truncated h263 decoding support / H263-ES "demuxer"
michaelni
parents: 128
diff changeset
535
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
536 #ifdef CONFIG_MUXERS
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
537 AVOutputFormat h263_muxer = {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
538 "h263",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
539 "raw h263",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
540 "video/x-h263",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
541 "h263",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
542 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
543 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
544 CODEC_ID_H263,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
545 raw_write_header,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
546 raw_write_packet,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
547 raw_write_trailer,
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
548 .flags= AVFMT_NOTIMESTAMPS,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
549 };
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
550 #endif //CONFIG_MUXERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
551
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
552 AVInputFormat m4v_demuxer = {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
553 "m4v",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
554 "raw MPEG4 video format",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
555 0,
1463
acf4dbb1a7e6 mpeg4probe patch by (Thijs Vermeir ; thijs vermeir barco com)
michael
parents: 1415
diff changeset
556 mpeg4video_probe, /** probing for mpeg4 data */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
557 video_read_header,
389
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
558 raw_read_partial_packet,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
559 raw_read_close,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
560 .extensions = "m4v", //FIXME remove after writing mpeg4_probe
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
561 .value = CODEC_ID_MPEG4,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
562 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
563
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
564 #ifdef CONFIG_MUXERS
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
565 AVOutputFormat m4v_muxer = {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
566 "m4v",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
567 "raw MPEG4 video format",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
568 NULL,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
569 "m4v",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
570 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
571 CODEC_ID_NONE,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
572 CODEC_ID_MPEG4,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
573 raw_write_header,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
574 raw_write_packet,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
575 raw_write_trailer,
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
576 .flags= AVFMT_NOTIMESTAMPS,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
577 };
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
578 #endif //CONFIG_MUXERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
579
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
580 AVInputFormat h264_demuxer = {
100
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
581 "h264",
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
582 "raw H264 video format",
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
583 0,
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
584 NULL /*mpegvideo_probe*/,
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
585 video_read_header,
389
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
586 raw_read_partial_packet,
100
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
587 raw_read_close,
808
michael
parents: 775
diff changeset
588 .extensions = "h26l,h264,264", //FIXME remove after writing mpeg4_probe
100
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
589 .value = CODEC_ID_H264,
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
590 };
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
591
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
592 #ifdef CONFIG_MUXERS
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
593 AVOutputFormat h264_muxer = {
100
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
594 "h264",
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
595 "raw H264 video format",
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
596 NULL,
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
597 "h264",
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
598 0,
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
599 CODEC_ID_NONE,
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
600 CODEC_ID_H264,
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
601 raw_write_header,
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
602 raw_write_packet,
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
603 raw_write_trailer,
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
604 .flags= AVFMT_NOTIMESTAMPS,
100
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
605 };
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
606 #endif //CONFIG_MUXERS
100
fa3ebf0d0270 H264 decoder & demuxer
michaelni
parents: 85
diff changeset
607
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
608 AVInputFormat mpegvideo_demuxer = {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
609 "mpegvideo",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
610 "MPEG video",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
611 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
612 mpegvideo_probe,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
613 video_read_header,
389
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
614 raw_read_partial_packet,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
615 raw_read_close,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
616 .value = CODEC_ID_MPEG1VIDEO,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
617 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
618
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
619 #ifdef CONFIG_MUXERS
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
620 AVOutputFormat mpeg1video_muxer = {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
621 "mpeg1video",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
622 "MPEG video",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
623 "video/x-mpeg",
814
731af78f150d .m1v and .m2a (feature req #1178960)
michael
parents: 808
diff changeset
624 "mpg,mpeg,m1v",
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
625 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
626 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
627 CODEC_ID_MPEG1VIDEO,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
628 raw_write_header,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
629 raw_write_packet,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
630 raw_write_trailer,
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
631 .flags= AVFMT_NOTIMESTAMPS,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
632 };
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
633 #endif //CONFIG_MUXERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
634
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
635 #ifdef CONFIG_MUXERS
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
636 AVOutputFormat mpeg2video_muxer = {
637
76e36d97a27a Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents: 576
diff changeset
637 "mpeg2video",
76e36d97a27a Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents: 576
diff changeset
638 "MPEG2 video",
76e36d97a27a Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents: 576
diff changeset
639 NULL,
76e36d97a27a Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents: 576
diff changeset
640 "m2v",
76e36d97a27a Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents: 576
diff changeset
641 0,
76e36d97a27a Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents: 576
diff changeset
642 0,
76e36d97a27a Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents: 576
diff changeset
643 CODEC_ID_MPEG2VIDEO,
76e36d97a27a Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents: 576
diff changeset
644 raw_write_header,
76e36d97a27a Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents: 576
diff changeset
645 raw_write_packet,
76e36d97a27a Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents: 576
diff changeset
646 raw_write_trailer,
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
647 .flags= AVFMT_NOTIMESTAMPS,
637
76e36d97a27a Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents: 576
diff changeset
648 };
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
649 #endif //CONFIG_MUXERS
637
76e36d97a27a Patch for creating m2v files by (Fabrizio Gennari <fabrizio.ge tiscali it)
michael
parents: 576
diff changeset
650
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
651 AVInputFormat mjpeg_demuxer = {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
652 "mjpeg",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
653 "MJPEG video",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
654 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
655 NULL,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
656 video_read_header,
389
e14fcd57ad2f decode latency patch by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)
michael
parents: 306
diff changeset
657 raw_read_partial_packet,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
658 raw_read_close,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
659 .extensions = "mjpg,mjpeg",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
660 .value = CODEC_ID_MJPEG,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
661 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
662
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
663 AVInputFormat ingenient_demuxer = {
868
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
664 "ingenient",
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
665 "Ingenient MJPEG",
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
666 0,
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
667 NULL,
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
668 video_read_header,
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
669 ingenient_read_packet,
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
670 raw_read_close,
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
671 .extensions = "cgi", // FIXME
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
672 .value = CODEC_ID_MJPEG,
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
673 };
c6b1dde68f3a Ingenient MJPEG support, more at http://www.artificis.hu/files/texts/ingenient.txt
alex
parents: 858
diff changeset
674
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
675 #ifdef CONFIG_MUXERS
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
676 AVOutputFormat mjpeg_muxer = {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
677 "mjpeg",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
678 "MJPEG video",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
679 "video/x-mjpeg",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
680 "mjpg,mjpeg",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
681 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
682 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
683 CODEC_ID_MJPEG,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
684 raw_write_header,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
685 raw_write_packet,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
686 raw_write_trailer,
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
687 .flags= AVFMT_NOTIMESTAMPS,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
688 };
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
689 #endif //CONFIG_MUXERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
690
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
691 /* pcm formats */
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 241
diff changeset
692
306
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
693 #define PCMINPUTDEF(name, long_name, ext, codec) \
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
694 AVInputFormat pcm_ ## name ## _demuxer = {\
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 241
diff changeset
695 #name,\
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 241
diff changeset
696 long_name,\
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 241
diff changeset
697 0,\
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 241
diff changeset
698 NULL,\
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 241
diff changeset
699 raw_read_header,\
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 241
diff changeset
700 raw_read_packet,\
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 241
diff changeset
701 raw_read_close,\
306
e7a8d4dd8e14 seek support for PCM formats
bellard
parents: 277
diff changeset
702 pcm_read_seek,\
277
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 241
diff changeset
703 .extensions = ext,\
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 241
diff changeset
704 .value = codec,\
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 241
diff changeset
705 };
a313e1080322 disable encoders where appropriate (patch courtesy of BERO
melanson
parents: 241
diff changeset
706
1121
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
707 #define PCMOUTPUTDEF(name, long_name, ext, codec) \
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
708 AVOutputFormat pcm_ ## name ## _muxer = {\
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
709 #name,\
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
710 long_name,\
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
711 NULL,\
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
712 ext,\
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
713 0,\
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
714 codec,\
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
715 0,\
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
716 raw_write_header,\
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
717 raw_write_packet,\
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
718 raw_write_trailer,\
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
719 .flags= AVFMT_NOTIMESTAMPS,\
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
720 };
1121
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
721
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
722
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
723 #if !defined(CONFIG_MUXERS) && defined(CONFIG_DEMUXERS)
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
724 #define PCMDEF(name, long_name, ext, codec) \
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
725 PCMINPUTDEF(name, long_name, ext, codec)
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
726 #elif defined(CONFIG_MUXERS) && !defined(CONFIG_DEMUXERS)
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
727 #define PCMDEF(name, long_name, ext, codec) \
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
728 PCMOUTPUTDEF(name, long_name, ext, codec)
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
729 #elif defined(CONFIG_MUXERS) && defined(CONFIG_DEMUXERS)
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
730 #define PCMDEF(name, long_name, ext, codec) \
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
731 PCMINPUTDEF(name, long_name, ext, codec)\
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
732 PCMOUTPUTDEF(name, long_name, ext, codec)
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
733 #else
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
734 #define PCMDEF(name, long_name, ext, codec)
787a70a8b867 Fix compilation with all combinations of --disable-(de)muxers.
diego
parents: 1078
diff changeset
735 #endif
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
736
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
737 #ifdef WORDS_BIGENDIAN
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
738 #define BE_DEF(s) s
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
739 #define LE_DEF(s) NULL
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
740 #else
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
741 #define BE_DEF(s) NULL
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
742 #define LE_DEF(s) s
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
743 #endif
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
744
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
745
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
746 PCMDEF(s16le, "pcm signed 16 bit little endian format",
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
747 LE_DEF("sw"), CODEC_ID_PCM_S16LE)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
748
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
749 PCMDEF(s16be, "pcm signed 16 bit big endian format",
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
750 BE_DEF("sw"), CODEC_ID_PCM_S16BE)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
751
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
752 PCMDEF(u16le, "pcm unsigned 16 bit little endian format",
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
753 LE_DEF("uw"), CODEC_ID_PCM_U16LE)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
754
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
755 PCMDEF(u16be, "pcm unsigned 16 bit big endian format",
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
756 BE_DEF("uw"), CODEC_ID_PCM_U16BE)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
757
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
758 PCMDEF(s8, "pcm signed 8 bit format",
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
759 "sb", CODEC_ID_PCM_S8)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
760
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
761 PCMDEF(u8, "pcm unsigned 8 bit format",
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
762 "ub", CODEC_ID_PCM_U8)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
763
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
764 PCMDEF(mulaw, "pcm mu law format",
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
765 "ul", CODEC_ID_PCM_MULAW)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
766
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 868
diff changeset
767 PCMDEF(alaw, "pcm A law format",
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
768 "al", CODEC_ID_PCM_ALAW)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
769
64
b0e0eb595e29 * static,const,compiler warning cleanup
kabi
parents: 63
diff changeset
770 static int rawvideo_read_packet(AVFormatContext *s, AVPacket *pkt)
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
771 {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
772 int packet_size, ret, width, height;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
773 AVStream *st = s->streams[0];
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
774
820
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
775 width = st->codec->width;
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
776 height = st->codec->height;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
777
820
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 814
diff changeset
778 packet_size = avpicture_get_size(st->codec->pix_fmt, width, height);
128
45633cd5518a * introducing new public interface in imgconvert.c
romansh
parents: 126
diff changeset
779 if (packet_size < 0)
537
558a093b04db do not call (av_)abort()
michael
parents: 496
diff changeset
780 return -1;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
781
775
c5077fdab490 AVPacket.pos
michael
parents: 749
diff changeset
782 ret= av_get_packet(&s->pb, pkt, packet_size);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
783
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
784 pkt->stream_index = 0;
775
c5077fdab490 AVPacket.pos
michael
parents: 749
diff changeset
785 if (ret != packet_size) {
482
0fdc96c2f2fe sweeping change from -EIO -> AVERROR_IO
melanson
parents: 473
diff changeset
786 return AVERROR_IO;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
787 } else {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
788 return 0;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
789 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
790 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
791
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
792 AVInputFormat rawvideo_demuxer = {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
793 "rawvideo",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
794 "raw video format",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
795 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
796 NULL,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
797 raw_read_header,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
798 rawvideo_read_packet,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
799 raw_read_close,
749
1a19a6add674 default to YUV420P if none specified for rawvideo input
michael
parents: 745
diff changeset
800 .extensions = "yuv,cif,qcif",
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
801 .value = CODEC_ID_RAWVIDEO,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
802 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
803
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
804 #ifdef CONFIG_MUXERS
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
805 AVOutputFormat rawvideo_muxer = {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
806 "rawvideo",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
807 "raw video format",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
808 NULL,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
809 "yuv",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
810 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
811 CODEC_ID_NONE,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
812 CODEC_ID_RAWVIDEO,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
813 raw_write_header,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
814 raw_write_packet,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
815 raw_write_trailer,
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
816 .flags= AVFMT_NOTIMESTAMPS,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
817 };
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
818 #endif //CONFIG_MUXERS
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
819
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
820 #ifdef CONFIG_MUXERS
468
60f897e8dd2d pass AVPacket into av_write_frame()
michael
parents: 464
diff changeset
821 static int null_write_packet(struct AVFormatContext *s, AVPacket *pkt)
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
822 {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
823 return 0;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
824 }
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
825
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 1121
diff changeset
826 AVOutputFormat null_muxer = {
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
827 "null",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
828 "null video format",
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
829 NULL,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
830 NULL,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
831 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
832 #ifdef WORDS_BIGENDIAN
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
833 CODEC_ID_PCM_S16BE,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
834 #else
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
835 CODEC_ID_PCM_S16LE,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
836 #endif
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
837 CODEC_ID_RAWVIDEO,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
838 raw_write_header,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
839 null_write_packet,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
840 raw_write_trailer,
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
841 .flags = AVFMT_NOFILE | AVFMT_RAWPICTURE | AVFMT_NOTIMESTAMPS,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
842 };
858
66cc656ea404 Replace CONFIG_ENCODERS/CONFIG_DECODERS with CONFIG_MUXERS/CONFIG_DEMUXERS
diego
parents: 820
diff changeset
843 #endif //CONFIG_MUXERS