FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
nutdec.c File Reference
#include "libavutil/avstring.h"
#include "libavutil/avassert.h"
#include "libavutil/bswap.h"
#include "libavutil/dict.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h"
#include "libavutil/tree.h"
#include "libavcodec/bytestream.h"
#include "avio_internal.h"
#include "isom.h"
#include "nut.h"
#include "riff.h"

Go to the source code of this file.

Macros

#define NUT_MAX_STREAMS   256 /* arbitrary sanity check value */
 
#define GET_V(dst, check)
 

Functions

static int64_t nut_read_timestamp (AVFormatContext *s, int stream_index, int64_t *pos_arg, int64_t pos_limit)
 
static int get_str (AVIOContext *bc, char *string, unsigned int maxlen)
 
static int64_t get_s (AVIOContext *bc)
 
static uint64_t get_fourcc (AVIOContext *bc)
 
static int get_packetheader (NUTContext *nut, AVIOContext *bc, int calculate_checksum, uint64_t startcode)
 
static uint64_t find_any_startcode (AVIOContext *bc, int64_t pos)
 
static int64_t find_startcode (AVIOContext *bc, uint64_t code, int64_t pos)
 Find the given startcode. More...
 
static int nut_probe (AVProbeData *p)
 
static int skip_reserved (AVIOContext *bc, int64_t pos)
 
static int decode_main_header (NUTContext *nut)
 
static int decode_stream_header (NUTContext *nut)
 
static void set_disposition_bits (AVFormatContext *avf, char *value, int stream_id)
 
static int decode_info_header (NUTContext *nut)
 
static int decode_syncpoint (NUTContext *nut, int64_t *ts, int64_t *back_ptr)
 
static int64_t find_duration (NUTContext *nut, int64_t filesize)
 
static int find_and_decode_index (NUTContext *nut)
 
static int nut_read_close (AVFormatContext *s)
 
static int nut_read_header (AVFormatContext *s)
 
static int read_sm_data (AVFormatContext *s, AVIOContext *bc, AVPacket *pkt, int is_meta, int64_t maxpos)
 
static int decode_frame_header (NUTContext *nut, int64_t *pts, int *stream_id, uint8_t *header_idx, int frame_code)
 
static int decode_frame (NUTContext *nut, AVPacket *pkt, int frame_code)
 
static int nut_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static int read_seek (AVFormatContext *s, int stream_index, int64_t pts, int flags)
 

Variables

AVInputFormat ff_nut_demuxer
 

Macro Definition Documentation

#define NUT_MAX_STREAMS   256 /* arbitrary sanity check value */

Definition at line 36 of file nutdec.c.

Referenced by decode_main_header().

#define GET_V (   dst,
  check 
)
Value:
do { \
tmp = ffio_read_varlen(bc); \
if (!(check)) { \
av_log(s, AV_LOG_ERROR, "Error " #dst " is (%"PRId64")\n", tmp); \
goto fail; \
} \
dst = tmp; \
} while (0)
uint64_t ffio_read_varlen(AVIOContext *bc)
Definition: aviobuf.c:765
const char * s
Definition: avisynth_c.h:631
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
Definition: error.h:59
#define av_log(a,...)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:176
#define fail()
Definition: checkasm.h:57
if(ret< 0)
Definition: vf_mcdeint.c:280
#define check(x, y, S, v)

Definition at line 201 of file nutdec.c.

Referenced by decode_frame_header(), decode_info_header(), decode_main_header(), decode_stream_header(), and find_and_decode_index().

Function Documentation

static int64_t nut_read_timestamp ( AVFormatContext s,
int  stream_index,
int64_t *  pos_arg,
int64_t  pos_limit 
)
static

Definition at line 1222 of file nutdec.c.

Referenced by find_duration(), and read_seek().

static int get_str ( AVIOContext bc,
char *  string,
unsigned int  maxlen 
)
static

Definition at line 41 of file nutdec.c.

Referenced by decode_info_header(), and read_sm_data().

static int64_t get_s ( AVIOContext bc)
static

Definition at line 65 of file nutdec.c.

Referenced by decode_frame_header(), decode_info_header(), decode_main_header(), and read_sm_data().

static uint64_t get_fourcc ( AVIOContext bc)
static

Definition at line 75 of file nutdec.c.

Referenced by decode_stream_header().

static int get_packetheader ( NUTContext nut,
AVIOContext bc,
int  calculate_checksum,
uint64_t  startcode 
)
static
static uint64_t find_any_startcode ( AVIOContext bc,
int64_t  pos 
)
static

Definition at line 145 of file nutdec.c.

Referenced by find_startcode(), nut_read_header(), and nut_read_packet().

static int64_t find_startcode ( AVIOContext bc,
uint64_t  code,
int64_t  pos 
)
static

Find the given startcode.

Parameters
codethe startcode
posthe start position of the search, or -1 if the current position
Returns
the position of the startcode or -1 if not found

Definition at line 176 of file nutdec.c.

Referenced by nut_read_header(), nut_read_timestamp(), and read_seek().

static int nut_probe ( AVProbeData p)
static

Definition at line 188 of file nutdec.c.

static int skip_reserved ( AVIOContext bc,
int64_t  pos 
)
static
static int decode_main_header ( NUTContext nut)
static

Definition at line 228 of file nutdec.c.

Referenced by nut_read_header().

static int decode_stream_header ( NUTContext nut)
static

Definition at line 393 of file nutdec.c.

Referenced by nut_read_header().

static void set_disposition_bits ( AVFormatContext avf,
char *  value,
int  stream_id 
)
static

Definition at line 500 of file nutdec.c.

Referenced by decode_info_header().

static int decode_info_header ( NUTContext nut)
static

Definition at line 515 of file nutdec.c.

Referenced by nut_read_header(), and nut_read_packet().

static int decode_syncpoint ( NUTContext nut,
int64_t *  ts,
int64_t *  back_ptr 
)
static

Definition at line 636 of file nutdec.c.

Referenced by nut_read_packet(), and nut_read_timestamp().

static int64_t find_duration ( NUTContext nut,
int64_t  filesize 
)
static

Definition at line 680 of file nutdec.c.

Referenced by find_and_decode_index().

static int find_and_decode_index ( NUTContext nut)
static

Definition at line 692 of file nutdec.c.

Referenced by nut_read_header().

static int nut_read_close ( AVFormatContext s)
static

Definition at line 806 of file nutdec.c.

Referenced by nut_read_header().

static int nut_read_header ( AVFormatContext s)
static

Definition at line 820 of file nutdec.c.

static int read_sm_data ( AVFormatContext s,
AVIOContext bc,
AVPacket pkt,
int  is_meta,
int64_t  maxpos 
)
static

Definition at line 889 of file nutdec.c.

Referenced by decode_frame().

static int decode_frame_header ( NUTContext nut,
int64_t *  pts,
int *  stream_id,
uint8_t header_idx,
int  frame_code 
)
static

Definition at line 1014 of file nutdec.c.

Referenced by decode_frame().

static int decode_frame ( NUTContext nut,
AVPacket pkt,
int  frame_code 
)
static

Definition at line 1097 of file nutdec.c.

Referenced by nut_read_packet().

static int nut_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 1164 of file nutdec.c.

static int read_seek ( AVFormatContext s,
int  stream_index,
int64_t  pts,
int  flags 
)
static

Definition at line 1249 of file nutdec.c.

Variable Documentation

AVInputFormat ff_nut_demuxer
Initial value:
= {
.name = "nut",
.long_name = NULL_IF_CONFIG_SMALL("NUT"),
.priv_data_size = sizeof(NUTContext),
.extensions = "nut",
.codec_tag = ff_nut_codec_tags,
}
static int nut_probe(AVProbeData *p)
Definition: nutdec.c:188
static av_cold int read_close(AVFormatContext *ctx)
Definition: libcdio.c:145
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:175
static int nut_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition: nutdec.c:1164
static int nut_read_close(AVFormatContext *s)
Definition: nutdec.c:806
static int read_probe(AVProbeData *pd)
Definition: jvdec.c:55
static int nut_read_header(AVFormatContext *s)
Definition: nutdec.c:820
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:623
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
Definition: avio_reading.c:42
#define AVFMT_SEEK_TO_PTS
Seeking is based on PTS.
Definition: avformat.h:506
static int read_seek(AVFormatContext *s, int stream_index, int64_t pts, int flags)
Definition: nutdec.c:1249
const AVCodecTag *const ff_nut_codec_tags[]
Definition: nut.c:217

Definition at line 1321 of file nutdec.c.