X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fnut.h;h=6acebc34b7402531c91c7f1bc5cc033b0350dc05;hb=585dac65dba487b764fe136640da3e7573f75151;hp=af42a57720f8b624489dd086446e0ba74b425f30;hpb=619d8e2e5844ae7b072a71ef65d3df8e8d7ce9da;p=ffmpeg diff --git a/libavformat/nut.h b/libavformat/nut.h index af42a57720f..6acebc34b74 100644 --- a/libavformat/nut.h +++ b/libavformat/nut.h @@ -17,15 +17,16 @@ * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * */ +#ifndef FFMPEG_NUT_H +#define FFMPEG_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" #define MAIN_STARTCODE (0x7A561F5F04ADULL + (((uint64_t)('N'<<8) + 'M')<<48)) #define STREAM_STARTCODE (0x11405BF2F9DBULL + (((uint64_t)('N'<<8) + 'S')<<48)) @@ -43,16 +44,19 @@ typedef enum{ FLAG_CODED_PTS = 8, /// startcode less, 1-> short startcode 2-> long startcodes +// int64_t packet_start; FrameCode frame_code[256]; - uint64_t next_startcode; ///< stores the next startcode if it has alraedy been parsed but the stream isnt seekable + 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; 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[]; + +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(syncpoint_t *a, syncpoint_t *b); +int ff_nut_sp_pts_cmp(syncpoint_t *a, syncpoint_t *b); +void ff_nut_add_sp(NUTContext *nut, int64_t pos, int64_t back_ptr, int64_t ts); + +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); -} +#endif /* FFMPEG_NUT_H */