comparison raw.c @ 3268:319c36da904b libavformat

set demuxers .value and use common audio_read_header function
author bcoudurier
date Mon, 28 Apr 2008 14:14:44 +0000
parents db733a434b2c
children 55d4f01c9728
comparison
equal deleted inserted replaced
3267:37e245554350 3268:319c36da904b
219 st->cur_dts = av_rescale(pos, st->time_base.den, byte_rate * (int64_t)st->time_base.num); 219 st->cur_dts = av_rescale(pos, st->time_base.den, byte_rate * (int64_t)st->time_base.num);
220 url_fseek(s->pb, pos + s->data_offset, SEEK_SET); 220 url_fseek(s->pb, pos + s->data_offset, SEEK_SET);
221 return 0; 221 return 0;
222 } 222 }
223 223
224 /* ac3 read */ 224 static int audio_read_header(AVFormatContext *s,
225 static int ac3_read_header(AVFormatContext *s, 225 AVFormatParameters *ap)
226 AVFormatParameters *ap) 226 {
227 { 227 AVStream *st = av_new_stream(s, 0);
228 AVStream *st;
229
230 st = av_new_stream(s, 0);
231 if (!st)
232 return AVERROR(ENOMEM);
233
234 st->codec->codec_type = CODEC_TYPE_AUDIO;
235 st->codec->codec_id = CODEC_ID_AC3;
236 st->need_parsing = AVSTREAM_PARSE_FULL;
237 /* the parameters will be extracted from the compressed bitstream */
238 return 0;
239 }
240
241 static int shorten_read_header(AVFormatContext *s,
242 AVFormatParameters *ap)
243 {
244 AVStream *st;
245
246 st = av_new_stream(s, 0);
247 if (!st) 228 if (!st)
248 return AVERROR(ENOMEM); 229 return AVERROR(ENOMEM);
249 st->codec->codec_type = CODEC_TYPE_AUDIO; 230 st->codec->codec_type = CODEC_TYPE_AUDIO;
250 st->codec->codec_id = CODEC_ID_SHORTEN; 231 st->codec->codec_id = s->iformat->value;
251 st->need_parsing = AVSTREAM_PARSE_FULL;
252 /* the parameters will be extracted from the compressed bitstream */
253 return 0;
254 }
255
256 /* flac read */
257 static int flac_read_header(AVFormatContext *s,
258 AVFormatParameters *ap)
259 {
260 AVStream *st;
261
262 st = av_new_stream(s, 0);
263 if (!st)
264 return AVERROR(ENOMEM);
265 st->codec->codec_type = CODEC_TYPE_AUDIO;
266 st->codec->codec_id = CODEC_ID_FLAC;
267 st->need_parsing = AVSTREAM_PARSE_FULL;
268 /* the parameters will be extracted from the compressed bitstream */
269 return 0;
270 }
271
272 /* dts read */
273 static int dts_read_header(AVFormatContext *s,
274 AVFormatParameters *ap)
275 {
276 AVStream *st;
277
278 st = av_new_stream(s, 0);
279 if (!st)
280 return AVERROR(ENOMEM);
281
282 st->codec->codec_type = CODEC_TYPE_AUDIO;
283 st->codec->codec_id = CODEC_ID_DTS;
284 st->need_parsing = AVSTREAM_PARSE_FULL;
285 /* the parameters will be extracted from the compressed bitstream */
286 return 0;
287 }
288
289 /* aac read */
290 static int aac_read_header(AVFormatContext *s,
291 AVFormatParameters *ap)
292 {
293 AVStream *st;
294
295 st = av_new_stream(s, 0);
296 if (!st)
297 return AVERROR(ENOMEM);
298
299 st->codec->codec_type = CODEC_TYPE_AUDIO;
300 st->codec->codec_id = CODEC_ID_AAC;
301 st->need_parsing = AVSTREAM_PARSE_FULL; 232 st->need_parsing = AVSTREAM_PARSE_FULL;
302 /* the parameters will be extracted from the compressed bitstream */ 233 /* the parameters will be extracted from the compressed bitstream */
303 return 0; 234 return 0;
304 } 235 }
305 236
457 AVInputFormat shorten_demuxer = { 388 AVInputFormat shorten_demuxer = {
458 "shn", 389 "shn",
459 "raw shorten", 390 "raw shorten",
460 0, 391 0,
461 NULL, 392 NULL,
462 shorten_read_header, 393 audio_read_header,
463 raw_read_partial_packet, 394 raw_read_partial_packet,
464 raw_read_close, 395 raw_read_close,
465 .flags= AVFMT_GENERIC_INDEX, 396 .flags= AVFMT_GENERIC_INDEX,
466 .extensions = "shn", 397 .extensions = "shn",
398 .value = CODEC_ID_SHORTEN,
467 }; 399 };
468 400
469 AVInputFormat flac_demuxer = { 401 AVInputFormat flac_demuxer = {
470 "flac", 402 "flac",
471 "raw flac", 403 "raw flac",
472 0, 404 0,
473 flac_probe, 405 flac_probe,
474 flac_read_header, 406 audio_read_header,
475 raw_read_partial_packet, 407 raw_read_partial_packet,
476 raw_read_close, 408 raw_read_close,
477 .flags= AVFMT_GENERIC_INDEX, 409 .flags= AVFMT_GENERIC_INDEX,
478 .extensions = "flac", 410 .extensions = "flac",
411 .value = CODEC_ID_FLAC,
479 }; 412 };
480 413
481 #ifdef CONFIG_MUXERS 414 #ifdef CONFIG_MUXERS
482 AVOutputFormat flac_muxer = { 415 AVOutputFormat flac_muxer = {
483 "flac", 416 "flac",
497 AVInputFormat ac3_demuxer = { 430 AVInputFormat ac3_demuxer = {
498 "ac3", 431 "ac3",
499 "raw ac3", 432 "raw ac3",
500 0, 433 0,
501 ac3_probe, 434 ac3_probe,
502 ac3_read_header, 435 audio_read_header,
503 raw_read_partial_packet, 436 raw_read_partial_packet,
504 raw_read_close, 437 raw_read_close,
505 .flags= AVFMT_GENERIC_INDEX, 438 .flags= AVFMT_GENERIC_INDEX,
506 .extensions = "ac3", 439 .extensions = "ac3",
440 .value = CODEC_ID_AC3,
507 }; 441 };
508 #endif 442 #endif
509 443
510 #ifdef CONFIG_MUXERS 444 #ifdef CONFIG_MUXERS
511 AVOutputFormat ac3_muxer = { 445 AVOutputFormat ac3_muxer = {
539 AVInputFormat dts_demuxer = { 473 AVInputFormat dts_demuxer = {
540 "dts", 474 "dts",
541 "raw dts", 475 "raw dts",
542 0, 476 0,
543 NULL, 477 NULL,
544 dts_read_header, 478 audio_read_header,
545 raw_read_partial_packet, 479 raw_read_partial_packet,
546 raw_read_close, 480 raw_read_close,
547 .flags= AVFMT_GENERIC_INDEX, 481 .flags= AVFMT_GENERIC_INDEX,
548 .extensions = "dts", 482 .extensions = "dts",
483 .value = CODEC_ID_DTS,
549 }; 484 };
550 485
551 AVInputFormat aac_demuxer = { 486 AVInputFormat aac_demuxer = {
552 "aac", 487 "aac",
553 "ADTS AAC", 488 "ADTS AAC",
554 0, 489 0,
555 NULL, 490 NULL,
556 aac_read_header, 491 audio_read_header,
557 raw_read_partial_packet, 492 raw_read_partial_packet,
558 raw_read_close, 493 raw_read_close,
559 .flags= AVFMT_GENERIC_INDEX, 494 .flags= AVFMT_GENERIC_INDEX,
560 .extensions = "aac", 495 .extensions = "aac",
496 .value = CODEC_ID_AAC,
561 }; 497 };
562 498
563 #ifdef CONFIG_ROQ_MUXER 499 #ifdef CONFIG_ROQ_MUXER
564 AVOutputFormat roq_muxer = 500 AVOutputFormat roq_muxer =
565 { 501 {