Mercurial > libavformat.hg
comparison raw.c @ 3546:45c3d2b2b2fb libavformat
Alphabetically order AVInputFormat/AVOutputFormat declarations.
author | diego |
---|---|
date | Mon, 07 Jul 2008 11:11:08 +0000 |
parents | 2949f7da8931 |
children | 2adcaa7f6dff |
comparison
equal
deleted
inserted
replaced
3545:2949f7da8931 | 3546:45c3d2b2b2fb |
---|---|
54 put_flush_packet(s->pb); | 54 put_flush_packet(s->pb); |
55 | 55 |
56 return 0; | 56 return 0; |
57 } | 57 } |
58 | 58 |
59 static int null_write_packet(struct AVFormatContext *s, AVPacket *pkt) | |
60 { | |
61 return 0; | |
62 } | |
63 | |
59 static int raw_write_packet(struct AVFormatContext *s, AVPacket *pkt) | 64 static int raw_write_packet(struct AVFormatContext *s, AVPacket *pkt) |
60 { | 65 { |
61 put_buffer(s->pb, pkt->data, pkt->size); | 66 put_buffer(s->pb, pkt->data, pkt->size); |
62 put_flush_packet(s->pb); | 67 put_flush_packet(s->pb); |
63 return 0; | 68 return 0; |
150 } | 155 } |
151 pkt->size = ret; | 156 pkt->size = ret; |
152 return ret; | 157 return ret; |
153 } | 158 } |
154 | 159 |
160 static int rawvideo_read_packet(AVFormatContext *s, AVPacket *pkt) | |
161 { | |
162 int packet_size, ret, width, height; | |
163 AVStream *st = s->streams[0]; | |
164 | |
165 width = st->codec->width; | |
166 height = st->codec->height; | |
167 | |
168 packet_size = avpicture_get_size(st->codec->pix_fmt, width, height); | |
169 if (packet_size < 0) | |
170 return -1; | |
171 | |
172 ret= av_get_packet(s->pb, pkt, packet_size); | |
173 pkt->pts= | |
174 pkt->dts= pkt->pos / packet_size; | |
175 | |
176 pkt->stream_index = 0; | |
177 if (ret != packet_size) { | |
178 return AVERROR(EIO); | |
179 } else { | |
180 return 0; | |
181 } | |
182 } | |
183 | |
155 // http://www.artificis.hu/files/texts/ingenient.txt | 184 // http://www.artificis.hu/files/texts/ingenient.txt |
156 static int ingenient_read_packet(AVFormatContext *s, AVPacket *pkt) | 185 static int ingenient_read_packet(AVFormatContext *s, AVPacket *pkt) |
157 { | 186 { |
158 int ret, size, w, h, unk1, unk2; | 187 int ret, size, w, h, unk1, unk2; |
159 | 188 |
425 } | 454 } |
426 | 455 |
427 | 456 |
428 /* Note: Do not forget to add new entries to the Makefile as well. */ | 457 /* Note: Do not forget to add new entries to the Makefile as well. */ |
429 | 458 |
430 AVInputFormat shorten_demuxer = { | 459 AVInputFormat aac_demuxer = { |
431 "shn", | 460 "aac", |
432 NULL_IF_CONFIG_SMALL("raw Shorten"), | 461 NULL_IF_CONFIG_SMALL("ADTS AAC"), |
433 0, | 462 0, |
434 NULL, | 463 NULL, |
435 audio_read_header, | 464 audio_read_header, |
436 raw_read_partial_packet, | 465 raw_read_partial_packet, |
437 .flags= AVFMT_GENERIC_INDEX, | 466 .flags= AVFMT_GENERIC_INDEX, |
438 .extensions = "shn", | 467 .extensions = "aac", |
439 .value = CODEC_ID_SHORTEN, | 468 .value = CODEC_ID_AAC, |
440 }; | 469 }; |
441 | 470 |
442 AVInputFormat mlp_demuxer = { | 471 #ifdef CONFIG_AC3_DEMUXER |
443 "mlp", | 472 AVInputFormat ac3_demuxer = { |
444 NULL_IF_CONFIG_SMALL("raw MLP"), | 473 "ac3", |
445 0, | 474 NULL_IF_CONFIG_SMALL("raw AC-3"), |
446 NULL, | 475 0, |
476 ac3_probe, | |
447 audio_read_header, | 477 audio_read_header, |
448 raw_read_partial_packet, | 478 raw_read_partial_packet, |
449 .flags= AVFMT_GENERIC_INDEX, | 479 .flags= AVFMT_GENERIC_INDEX, |
450 .extensions = "mlp", | 480 .extensions = "ac3", |
451 .value = CODEC_ID_MLP, | 481 .value = CODEC_ID_AC3, |
452 }; | 482 }; |
483 #endif | |
484 | |
485 #ifdef CONFIG_MUXERS | |
486 AVOutputFormat ac3_muxer = { | |
487 "ac3", | |
488 NULL_IF_CONFIG_SMALL("raw AC-3"), | |
489 "audio/x-ac3", | |
490 "ac3", | |
491 0, | |
492 CODEC_ID_AC3, | |
493 CODEC_ID_NONE, | |
494 NULL, | |
495 raw_write_packet, | |
496 .flags= AVFMT_NOTIMESTAMPS, | |
497 }; | |
498 #endif //CONFIG_MUXERS | |
499 | |
500 AVInputFormat dirac_demuxer = { | |
501 "dirac", | |
502 NULL_IF_CONFIG_SMALL("raw Dirac"), | |
503 0, | |
504 dirac_probe, | |
505 video_read_header, | |
506 raw_read_partial_packet, | |
507 .flags= AVFMT_GENERIC_INDEX, | |
508 .value = CODEC_ID_DIRAC, | |
509 }; | |
510 | |
511 #ifdef CONFIG_MUXERS | |
512 AVOutputFormat dirac_muxer = { | |
513 "dirac", | |
514 NULL_IF_CONFIG_SMALL("raw Dirac"), | |
515 NULL, | |
516 "drc", | |
517 0, | |
518 CODEC_ID_NONE, | |
519 CODEC_ID_DIRAC, | |
520 NULL, | |
521 raw_write_packet, | |
522 .flags= AVFMT_NOTIMESTAMPS, | |
523 }; | |
524 #endif | |
525 | |
526 AVInputFormat dts_demuxer = { | |
527 "dts", | |
528 NULL_IF_CONFIG_SMALL("raw DTS"), | |
529 0, | |
530 dts_probe, | |
531 audio_read_header, | |
532 raw_read_partial_packet, | |
533 .flags= AVFMT_GENERIC_INDEX, | |
534 .extensions = "dts", | |
535 .value = CODEC_ID_DTS, | |
536 }; | |
537 | |
538 #ifdef CONFIG_MUXERS | |
539 AVOutputFormat dts_muxer = { | |
540 "dts", | |
541 NULL_IF_CONFIG_SMALL("raw DTS"), | |
542 "audio/x-dca", | |
543 "dts", | |
544 0, | |
545 CODEC_ID_DTS, | |
546 CODEC_ID_NONE, | |
547 NULL, | |
548 raw_write_packet, | |
549 .flags= AVFMT_NOTIMESTAMPS, | |
550 }; | |
551 #endif | |
453 | 552 |
454 AVInputFormat flac_demuxer = { | 553 AVInputFormat flac_demuxer = { |
455 "flac", | 554 "flac", |
456 NULL_IF_CONFIG_SMALL("raw FLAC"), | 555 NULL_IF_CONFIG_SMALL("raw FLAC"), |
457 0, | 556 0, |
476 raw_write_packet, | 575 raw_write_packet, |
477 .flags= AVFMT_NOTIMESTAMPS, | 576 .flags= AVFMT_NOTIMESTAMPS, |
478 }; | 577 }; |
479 #endif //CONFIG_MUXERS | 578 #endif //CONFIG_MUXERS |
480 | 579 |
481 #ifdef CONFIG_AC3_DEMUXER | |
482 AVInputFormat ac3_demuxer = { | |
483 "ac3", | |
484 NULL_IF_CONFIG_SMALL("raw AC-3"), | |
485 0, | |
486 ac3_probe, | |
487 audio_read_header, | |
488 raw_read_partial_packet, | |
489 .flags= AVFMT_GENERIC_INDEX, | |
490 .extensions = "ac3", | |
491 .value = CODEC_ID_AC3, | |
492 }; | |
493 #endif | |
494 | |
495 #ifdef CONFIG_MUXERS | |
496 AVOutputFormat ac3_muxer = { | |
497 "ac3", | |
498 NULL_IF_CONFIG_SMALL("raw AC-3"), | |
499 "audio/x-ac3", | |
500 "ac3", | |
501 0, | |
502 CODEC_ID_AC3, | |
503 CODEC_ID_NONE, | |
504 NULL, | |
505 raw_write_packet, | |
506 .flags= AVFMT_NOTIMESTAMPS, | |
507 }; | |
508 | |
509 AVOutputFormat dts_muxer = { | |
510 "dts", | |
511 NULL_IF_CONFIG_SMALL("raw DTS"), | |
512 "audio/x-dca", | |
513 "dts", | |
514 0, | |
515 CODEC_ID_DTS, | |
516 CODEC_ID_NONE, | |
517 NULL, | |
518 raw_write_packet, | |
519 .flags= AVFMT_NOTIMESTAMPS, | |
520 }; | |
521 | |
522 #endif //CONFIG_MUXERS | |
523 | |
524 AVInputFormat dirac_demuxer = { | |
525 "dirac", | |
526 NULL_IF_CONFIG_SMALL("raw Dirac"), | |
527 0, | |
528 dirac_probe, | |
529 video_read_header, | |
530 raw_read_partial_packet, | |
531 .flags= AVFMT_GENERIC_INDEX, | |
532 .value = CODEC_ID_DIRAC, | |
533 }; | |
534 | |
535 #ifdef CONFIG_MUXERS | |
536 AVOutputFormat dirac_muxer = { | |
537 "dirac", | |
538 NULL_IF_CONFIG_SMALL("raw Dirac"), | |
539 NULL, | |
540 "drc", | |
541 0, | |
542 CODEC_ID_NONE, | |
543 CODEC_ID_DIRAC, | |
544 NULL, | |
545 raw_write_packet, | |
546 .flags= AVFMT_NOTIMESTAMPS, | |
547 }; | |
548 #endif | |
549 | |
550 AVInputFormat dts_demuxer = { | |
551 "dts", | |
552 NULL_IF_CONFIG_SMALL("raw DTS"), | |
553 0, | |
554 dts_probe, | |
555 audio_read_header, | |
556 raw_read_partial_packet, | |
557 .flags= AVFMT_GENERIC_INDEX, | |
558 .extensions = "dts", | |
559 .value = CODEC_ID_DTS, | |
560 }; | |
561 | |
562 AVInputFormat aac_demuxer = { | |
563 "aac", | |
564 NULL_IF_CONFIG_SMALL("ADTS AAC"), | |
565 0, | |
566 NULL, | |
567 audio_read_header, | |
568 raw_read_partial_packet, | |
569 .flags= AVFMT_GENERIC_INDEX, | |
570 .extensions = "aac", | |
571 .value = CODEC_ID_AAC, | |
572 }; | |
573 | |
574 AVInputFormat gsm_demuxer = { | 580 AVInputFormat gsm_demuxer = { |
575 "gsm", | 581 "gsm", |
576 NULL_IF_CONFIG_SMALL("GSM"), | 582 NULL_IF_CONFIG_SMALL("GSM"), |
577 0, | 583 0, |
578 NULL, | 584 NULL, |
580 raw_read_partial_packet, | 586 raw_read_partial_packet, |
581 .flags= AVFMT_GENERIC_INDEX, | 587 .flags= AVFMT_GENERIC_INDEX, |
582 .extensions = "gsm", | 588 .extensions = "gsm", |
583 .value = CODEC_ID_GSM, | 589 .value = CODEC_ID_GSM, |
584 }; | 590 }; |
585 | |
586 #ifdef CONFIG_ROQ_MUXER | |
587 AVOutputFormat roq_muxer = | |
588 { | |
589 "RoQ", | |
590 NULL_IF_CONFIG_SMALL("id RoQ format"), | |
591 NULL, | |
592 "roq", | |
593 0, | |
594 CODEC_ID_ROQ_DPCM, | |
595 CODEC_ID_ROQ, | |
596 roq_write_header, | |
597 raw_write_packet, | |
598 }; | |
599 #endif //CONFIG_ROQ_MUXER | |
600 | 591 |
601 AVInputFormat h261_demuxer = { | 592 AVInputFormat h261_demuxer = { |
602 "h261", | 593 "h261", |
603 NULL_IF_CONFIG_SMALL("raw H.261"), | 594 NULL_IF_CONFIG_SMALL("raw H.261"), |
604 0, | 595 0, |
650 raw_write_packet, | 641 raw_write_packet, |
651 .flags= AVFMT_NOTIMESTAMPS, | 642 .flags= AVFMT_NOTIMESTAMPS, |
652 }; | 643 }; |
653 #endif //CONFIG_MUXERS | 644 #endif //CONFIG_MUXERS |
654 | 645 |
646 AVInputFormat h264_demuxer = { | |
647 "h264", | |
648 NULL_IF_CONFIG_SMALL("raw H.264 video format"), | |
649 0, | |
650 NULL /*mpegvideo_probe*/, | |
651 video_read_header, | |
652 raw_read_partial_packet, | |
653 .flags= AVFMT_GENERIC_INDEX, | |
654 .extensions = "h26l,h264,264", //FIXME remove after writing mpeg4_probe | |
655 .value = CODEC_ID_H264, | |
656 }; | |
657 | |
658 #ifdef CONFIG_MUXERS | |
659 AVOutputFormat h264_muxer = { | |
660 "h264", | |
661 NULL_IF_CONFIG_SMALL("raw H.264 video format"), | |
662 NULL, | |
663 "h264", | |
664 0, | |
665 CODEC_ID_NONE, | |
666 CODEC_ID_H264, | |
667 NULL, | |
668 raw_write_packet, | |
669 .flags= AVFMT_NOTIMESTAMPS, | |
670 }; | |
671 #endif //CONFIG_MUXERS | |
672 | |
673 AVInputFormat ingenient_demuxer = { | |
674 "ingenient", | |
675 NULL_IF_CONFIG_SMALL("Ingenient MJPEG"), | |
676 0, | |
677 NULL, | |
678 video_read_header, | |
679 ingenient_read_packet, | |
680 .flags= AVFMT_GENERIC_INDEX, | |
681 .extensions = "cgi", // FIXME | |
682 .value = CODEC_ID_MJPEG, | |
683 }; | |
684 | |
655 AVInputFormat m4v_demuxer = { | 685 AVInputFormat m4v_demuxer = { |
656 "m4v", | 686 "m4v", |
657 NULL_IF_CONFIG_SMALL("raw MPEG-4 video format"), | 687 NULL_IF_CONFIG_SMALL("raw MPEG-4 video format"), |
658 0, | 688 0, |
659 mpeg4video_probe, /** probing for mpeg4 data */ | 689 mpeg4video_probe, /** probing for mpeg4 data */ |
677 raw_write_packet, | 707 raw_write_packet, |
678 .flags= AVFMT_NOTIMESTAMPS, | 708 .flags= AVFMT_NOTIMESTAMPS, |
679 }; | 709 }; |
680 #endif //CONFIG_MUXERS | 710 #endif //CONFIG_MUXERS |
681 | 711 |
682 AVInputFormat h264_demuxer = { | 712 AVInputFormat mjpeg_demuxer = { |
683 "h264", | 713 "mjpeg", |
684 NULL_IF_CONFIG_SMALL("raw H.264 video format"), | 714 NULL_IF_CONFIG_SMALL("MJPEG video"), |
685 0, | 715 0, |
686 NULL /*mpegvideo_probe*/, | 716 NULL, |
687 video_read_header, | 717 video_read_header, |
688 raw_read_partial_packet, | 718 raw_read_partial_packet, |
689 .flags= AVFMT_GENERIC_INDEX, | 719 .flags= AVFMT_GENERIC_INDEX, |
690 .extensions = "h26l,h264,264", //FIXME remove after writing mpeg4_probe | 720 .extensions = "mjpg,mjpeg", |
691 .value = CODEC_ID_H264, | 721 .value = CODEC_ID_MJPEG, |
692 }; | 722 }; |
693 | 723 |
694 #ifdef CONFIG_MUXERS | 724 #ifdef CONFIG_MUXERS |
695 AVOutputFormat h264_muxer = { | 725 AVOutputFormat mjpeg_muxer = { |
696 "h264", | 726 "mjpeg", |
697 NULL_IF_CONFIG_SMALL("raw H.264 video format"), | 727 NULL_IF_CONFIG_SMALL("MJPEG video"), |
698 NULL, | 728 "video/x-mjpeg", |
699 "h264", | 729 "mjpg,mjpeg", |
700 0, | 730 0, |
701 CODEC_ID_NONE, | 731 CODEC_ID_NONE, |
702 CODEC_ID_H264, | 732 CODEC_ID_MJPEG, |
703 NULL, | 733 NULL, |
704 raw_write_packet, | 734 raw_write_packet, |
705 .flags= AVFMT_NOTIMESTAMPS, | 735 .flags= AVFMT_NOTIMESTAMPS, |
706 }; | 736 }; |
707 #endif //CONFIG_MUXERS | 737 #endif //CONFIG_MUXERS |
708 | 738 |
709 AVInputFormat mpegvideo_demuxer = { | 739 AVInputFormat mlp_demuxer = { |
710 "mpegvideo", | 740 "mlp", |
711 NULL_IF_CONFIG_SMALL("MPEG video"), | 741 NULL_IF_CONFIG_SMALL("raw MLP"), |
712 0, | 742 0, |
713 mpegvideo_probe, | 743 NULL, |
714 video_read_header, | 744 audio_read_header, |
715 raw_read_partial_packet, | 745 raw_read_partial_packet, |
716 .flags= AVFMT_GENERIC_INDEX, | 746 .flags= AVFMT_GENERIC_INDEX, |
717 .value = CODEC_ID_MPEG1VIDEO, | 747 .extensions = "mlp", |
748 .value = CODEC_ID_MLP, | |
718 }; | 749 }; |
719 | 750 |
720 #ifdef CONFIG_MUXERS | 751 #ifdef CONFIG_MUXERS |
721 AVOutputFormat mpeg1video_muxer = { | 752 AVOutputFormat mpeg1video_muxer = { |
722 "mpeg1video", | 753 "mpeg1video", |
745 raw_write_packet, | 776 raw_write_packet, |
746 .flags= AVFMT_NOTIMESTAMPS, | 777 .flags= AVFMT_NOTIMESTAMPS, |
747 }; | 778 }; |
748 #endif //CONFIG_MUXERS | 779 #endif //CONFIG_MUXERS |
749 | 780 |
750 AVInputFormat mjpeg_demuxer = { | 781 AVInputFormat mpegvideo_demuxer = { |
751 "mjpeg", | 782 "mpegvideo", |
752 NULL_IF_CONFIG_SMALL("MJPEG video"), | 783 NULL_IF_CONFIG_SMALL("MPEG video"), |
753 0, | 784 0, |
754 NULL, | 785 mpegvideo_probe, |
755 video_read_header, | 786 video_read_header, |
756 raw_read_partial_packet, | 787 raw_read_partial_packet, |
757 .flags= AVFMT_GENERIC_INDEX, | 788 .flags= AVFMT_GENERIC_INDEX, |
758 .extensions = "mjpg,mjpeg", | 789 .value = CODEC_ID_MPEG1VIDEO, |
759 .value = CODEC_ID_MJPEG, | 790 }; |
760 }; | 791 |
761 | 792 #ifdef CONFIG_MUXERS |
762 AVInputFormat ingenient_demuxer = { | 793 AVOutputFormat null_muxer = { |
763 "ingenient", | 794 "null", |
764 NULL_IF_CONFIG_SMALL("Ingenient MJPEG"), | 795 NULL_IF_CONFIG_SMALL("null video format"), |
765 0, | 796 NULL, |
766 NULL, | 797 NULL, |
767 video_read_header, | 798 0, |
768 ingenient_read_packet, | 799 #ifdef WORDS_BIGENDIAN |
769 .flags= AVFMT_GENERIC_INDEX, | 800 CODEC_ID_PCM_S16BE, |
770 .extensions = "cgi", // FIXME | 801 #else |
771 .value = CODEC_ID_MJPEG, | 802 CODEC_ID_PCM_S16LE, |
772 }; | 803 #endif |
773 | 804 CODEC_ID_RAWVIDEO, |
774 #ifdef CONFIG_MUXERS | 805 NULL, |
775 AVOutputFormat mjpeg_muxer = { | 806 null_write_packet, |
776 "mjpeg", | 807 .flags = AVFMT_NOFILE | AVFMT_RAWPICTURE | AVFMT_NOTIMESTAMPS, |
777 NULL_IF_CONFIG_SMALL("MJPEG video"), | 808 }; |
778 "video/x-mjpeg", | 809 #endif //CONFIG_MUXERS |
779 "mjpg,mjpeg", | 810 |
780 0, | 811 AVInputFormat rawvideo_demuxer = { |
781 CODEC_ID_NONE, | 812 "rawvideo", |
782 CODEC_ID_MJPEG, | 813 NULL_IF_CONFIG_SMALL("raw video format"), |
783 NULL, | 814 0, |
784 raw_write_packet, | 815 NULL, |
785 .flags= AVFMT_NOTIMESTAMPS, | 816 raw_read_header, |
786 }; | 817 rawvideo_read_packet, |
787 #endif //CONFIG_MUXERS | 818 .flags= AVFMT_GENERIC_INDEX, |
819 .extensions = "yuv,cif,qcif,rgb", | |
820 .value = CODEC_ID_RAWVIDEO, | |
821 }; | |
822 | |
823 #ifdef CONFIG_MUXERS | |
824 AVOutputFormat rawvideo_muxer = { | |
825 "rawvideo", | |
826 NULL_IF_CONFIG_SMALL("raw video format"), | |
827 NULL, | |
828 "yuv,rgb", | |
829 0, | |
830 CODEC_ID_NONE, | |
831 CODEC_ID_RAWVIDEO, | |
832 NULL, | |
833 raw_write_packet, | |
834 .flags= AVFMT_NOTIMESTAMPS, | |
835 }; | |
836 #endif //CONFIG_MUXERS | |
837 | |
838 #ifdef CONFIG_ROQ_MUXER | |
839 AVOutputFormat roq_muxer = | |
840 { | |
841 "RoQ", | |
842 NULL_IF_CONFIG_SMALL("id RoQ format"), | |
843 NULL, | |
844 "roq", | |
845 0, | |
846 CODEC_ID_ROQ_DPCM, | |
847 CODEC_ID_ROQ, | |
848 roq_write_header, | |
849 raw_write_packet, | |
850 }; | |
851 #endif //CONFIG_ROQ_MUXER | |
852 | |
853 AVInputFormat shorten_demuxer = { | |
854 "shn", | |
855 NULL_IF_CONFIG_SMALL("raw Shorten"), | |
856 0, | |
857 NULL, | |
858 audio_read_header, | |
859 raw_read_partial_packet, | |
860 .flags= AVFMT_GENERIC_INDEX, | |
861 .extensions = "shn", | |
862 .value = CODEC_ID_SHORTEN, | |
863 }; | |
788 | 864 |
789 AVInputFormat vc1_demuxer = { | 865 AVInputFormat vc1_demuxer = { |
790 "vc1", | 866 "vc1", |
791 NULL_IF_CONFIG_SMALL("raw VC-1"), | 867 NULL_IF_CONFIG_SMALL("raw VC-1"), |
792 0, | 868 0, |
850 #define BE_DEF(s) NULL | 926 #define BE_DEF(s) NULL |
851 #define LE_DEF(s) s | 927 #define LE_DEF(s) s |
852 #endif | 928 #endif |
853 | 929 |
854 | 930 |
931 PCMDEF(s16be, "PCM signed 16 bit big-endian format", | |
932 BE_DEF("sw"), CODEC_ID_PCM_S16BE) | |
933 | |
855 PCMDEF(s16le, "PCM signed 16 bit little-endian format", | 934 PCMDEF(s16le, "PCM signed 16 bit little-endian format", |
856 LE_DEF("sw"), CODEC_ID_PCM_S16LE) | 935 LE_DEF("sw"), CODEC_ID_PCM_S16LE) |
857 | 936 |
858 PCMDEF(s16be, "PCM signed 16 bit big-endian format", | 937 PCMDEF(s8, "PCM signed 8 bit format", |
859 BE_DEF("sw"), CODEC_ID_PCM_S16BE) | 938 "sb", CODEC_ID_PCM_S8) |
939 | |
940 PCMDEF(u16be, "PCM unsigned 16 bit big-endian format", | |
941 BE_DEF("uw"), CODEC_ID_PCM_U16BE) | |
860 | 942 |
861 PCMDEF(u16le, "PCM unsigned 16 bit little-endian format", | 943 PCMDEF(u16le, "PCM unsigned 16 bit little-endian format", |
862 LE_DEF("uw"), CODEC_ID_PCM_U16LE) | 944 LE_DEF("uw"), CODEC_ID_PCM_U16LE) |
863 | 945 |
864 PCMDEF(u16be, "PCM unsigned 16 bit big-endian format", | |
865 BE_DEF("uw"), CODEC_ID_PCM_U16BE) | |
866 | |
867 PCMDEF(s8, "PCM signed 8 bit format", | |
868 "sb", CODEC_ID_PCM_S8) | |
869 | |
870 PCMDEF(u8, "PCM unsigned 8 bit format", | 946 PCMDEF(u8, "PCM unsigned 8 bit format", |
871 "ub", CODEC_ID_PCM_U8) | 947 "ub", CODEC_ID_PCM_U8) |
872 | 948 |
949 PCMDEF(alaw, "PCM A-law format", | |
950 "al", CODEC_ID_PCM_ALAW) | |
951 | |
873 PCMDEF(mulaw, "PCM mu-law format", | 952 PCMDEF(mulaw, "PCM mu-law format", |
874 "ul", CODEC_ID_PCM_MULAW) | 953 "ul", CODEC_ID_PCM_MULAW) |
875 | |
876 PCMDEF(alaw, "PCM A-law format", | |
877 "al", CODEC_ID_PCM_ALAW) | |
878 | |
879 static int rawvideo_read_packet(AVFormatContext *s, AVPacket *pkt) | |
880 { | |
881 int packet_size, ret, width, height; | |
882 AVStream *st = s->streams[0]; | |
883 | |
884 width = st->codec->width; | |
885 height = st->codec->height; | |
886 | |
887 packet_size = avpicture_get_size(st->codec->pix_fmt, width, height); | |
888 if (packet_size < 0) | |
889 return -1; | |
890 | |
891 ret= av_get_packet(s->pb, pkt, packet_size); | |
892 pkt->pts= | |
893 pkt->dts= pkt->pos / packet_size; | |
894 | |
895 pkt->stream_index = 0; | |
896 if (ret != packet_size) { | |
897 return AVERROR(EIO); | |
898 } else { | |
899 return 0; | |
900 } | |
901 } | |
902 | |
903 AVInputFormat rawvideo_demuxer = { | |
904 "rawvideo", | |
905 NULL_IF_CONFIG_SMALL("raw video format"), | |
906 0, | |
907 NULL, | |
908 raw_read_header, | |
909 rawvideo_read_packet, | |
910 .flags= AVFMT_GENERIC_INDEX, | |
911 .extensions = "yuv,cif,qcif,rgb", | |
912 .value = CODEC_ID_RAWVIDEO, | |
913 }; | |
914 | |
915 #ifdef CONFIG_MUXERS | |
916 AVOutputFormat rawvideo_muxer = { | |
917 "rawvideo", | |
918 NULL_IF_CONFIG_SMALL("raw video format"), | |
919 NULL, | |
920 "yuv,rgb", | |
921 0, | |
922 CODEC_ID_NONE, | |
923 CODEC_ID_RAWVIDEO, | |
924 NULL, | |
925 raw_write_packet, | |
926 .flags= AVFMT_NOTIMESTAMPS, | |
927 }; | |
928 #endif //CONFIG_MUXERS | |
929 | |
930 #ifdef CONFIG_MUXERS | |
931 static int null_write_packet(struct AVFormatContext *s, AVPacket *pkt) | |
932 { | |
933 return 0; | |
934 } | |
935 | |
936 AVOutputFormat null_muxer = { | |
937 "null", | |
938 NULL_IF_CONFIG_SMALL("null video format"), | |
939 NULL, | |
940 NULL, | |
941 0, | |
942 #ifdef WORDS_BIGENDIAN | |
943 CODEC_ID_PCM_S16BE, | |
944 #else | |
945 CODEC_ID_PCM_S16LE, | |
946 #endif | |
947 CODEC_ID_RAWVIDEO, | |
948 NULL, | |
949 null_write_packet, | |
950 .flags = AVFMT_NOFILE | AVFMT_RAWPICTURE | AVFMT_NOTIMESTAMPS, | |
951 }; | |
952 #endif //CONFIG_MUXERS |