X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fnut.h;h=419b123beefe8612c1e99742ab5e754fa9ee16b1;hb=177bb4bf50d762fcc1ace3e357a2a2bba54744ee;hp=d8686524b2abb013cdce50f7d2fe462194ec49c3;hpb=efb775777f815f3140f79f58d3f756a3a4831235;p=ffmpeg diff --git a/libavformat/nut.h b/libavformat/nut.h index d8686524b2a..419b123beef 100644 --- a/libavformat/nut.h +++ b/libavformat/nut.h @@ -2,33 +2,32 @@ * "NUT" Container Format (de)muxer * Copyright (c) 2006 Michael Niedermayer * - * This file is part of FFmpeg. + * This file is part of Libav. * - * FFmpeg is free software; you can redistribute it and/or + * Libav is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * - * FFmpeg is distributed in the hope that it will be useful, + * Libav is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software + * License along with Libav; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * */ #ifndef AVFORMAT_NUT_H #define AVFORMAT_NUT_H //#include +//#include "libavutil/adler32.h" +//#include "libavcodec/mpegaudio.h" #include "avformat.h" -#include "crc.h" -//#include "mpegaudio.h" #include "riff.h" -//#include "adler32.h" +#include "metadata.h" #define MAIN_STARTCODE (0x7A561F5F04ADULL + (((uint64_t)('N'<<8) + 'M')<<48)) #define STREAM_STARTCODE (0x11405BF2F9DBULL + (((uint64_t)('N'<<8) + 'S')<<48)) @@ -46,18 +45,20 @@ typedef enum{ FLAG_CODED_PTS = 8, /// startcode less, 1-> short startcode 2-> long startcodes +// int64_t packet_start; FrameCode frame_code[256]; + uint8_t header_len[128]; + const uint8_t *header[128]; uint64_t next_startcode; ///< stores the next startcode if it has already been parsed but the stream is not seekable StreamContext *stream; + ChapterContext *chapter; unsigned int max_distance; unsigned int time_base_count; int64_t last_syncpoint_pos; + int header_count; AVRational *time_base; struct AVTreeNode *syncpoints; } NUTContext; +extern const AVCodecTag ff_nut_subtitle_tags[]; +extern const AVCodecTag ff_nut_video_tags[]; + +typedef struct { + char str[9]; + int flag; +} Dispositions; + +void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val); +int64_t ff_lsb2full(StreamContext *stream, int64_t lsb); +int ff_nut_sp_pos_cmp(const Syncpoint *a, const Syncpoint *b); +int ff_nut_sp_pts_cmp(const Syncpoint *a, const Syncpoint *b); +void ff_nut_add_sp(NUTContext *nut, int64_t pos, int64_t back_ptr, int64_t ts); +void ff_nut_free_sp(NUTContext *nut); + +extern const Dispositions ff_nut_dispositions[]; -//FIXME move to a common spot, like crc.c/h -static unsigned long av_crc04C11DB7_update(unsigned long checksum, const uint8_t *buf, unsigned int len){ - return av_crc(av_crc04C11DB7, checksum, buf, len); -} +extern const AVMetadataConv ff_nut_metadata_conv[]; -#endif AVFORMAT_NUT_H +#endif /* AVFORMAT_NUT_H */