nsvdec.c File Reference
#include "libavutil/attributes.h"
#include "libavutil/mathematics.h"
#include "avformat.h"
#include "internal.h"
#include "libavutil/dict.h"
#include "libavutil/intreadwrite.h"
Include dependency graph for nsvdec.c:

Go to the source code of this file.

Data Structures

struct  NSVStream
 
struct  NSVContext
 

Macros

#define CHECK_SUBSEQUENT_NSVS
 
#define NSV_MAX_RESYNC   (500*1024)
 
#define NSV_MAX_RESYNC_TRIES   300
 
#define T_NSVF   MKTAG('N', 'S', 'V', 'f') /* file header */
 
#define T_NSVS   MKTAG('N', 'S', 'V', 's') /* chunk header */
 
#define T_TOC2   MKTAG('T', 'O', 'C', '2') /* extra index marker */
 
#define T_NONE   MKTAG('N', 'O', 'N', 'E') /* null a/v 4CC */
 
#define T_SUBT   MKTAG('S', 'U', 'B', 'T') /* subtitle aux data */
 
#define T_ASYN   MKTAG('A', 'S', 'Y', 'N') /* async a/v aux marker */
 
#define T_KEYF   MKTAG('K', 'E', 'Y', 'F') /* video keyframe aux marker (addition) */
 
#define TB_NSVF   MKBETAG('N', 'S', 'V', 'f')
 
#define TB_NSVS   MKBETAG('N', 'S', 'V', 's')
 
#define NSV_ST_VIDEO   0
 
#define NSV_ST_AUDIO   1
 
#define NSV_ST_SUBT   2
 
#define print_tag(str, tag, size)
 

Typedefs

typedef struct NSVStream NSVStream
 

Enumerations

enum  NSVStatus {
  NSV_UNSYNC, NSV_FOUND_NSVF, NSV_HAS_READ_NSVF, NSV_FOUND_NSVS,
  NSV_HAS_READ_NSVS, NSV_FOUND_BEEF, NSV_GOT_VIDEO, NSV_GOT_AUDIO
}
 

Functions

static int nsv_read_chunk (AVFormatContext *s, int fill_header)
 
static int nsv_resync (AVFormatContext *s)
 
static int nsv_parse_NSVf_header (AVFormatContext *s)
 
static int nsv_parse_NSVs_header (AVFormatContext *s)
 
static int nsv_read_header (AVFormatContext *s)
 
static int nsv_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static int nsv_read_seek (AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
 
static int nsv_read_close (AVFormatContext *s)
 
static int nsv_probe (AVProbeData *p)
 

Variables

static const AVCodecTag nsv_codec_video_tags []
 
static const AVCodecTag nsv_codec_audio_tags []
 
AVInputFormat ff_nsv_demuxer
 

Macro Definition Documentation

#define CHECK_SUBSEQUENT_NSVS

Definition at line 32 of file nsvdec.c.

#define NSV_MAX_RESYNC   (500*1024)

Definition at line 38 of file nsvdec.c.

Referenced by nsv_resync().

#define NSV_MAX_RESYNC_TRIES   300

Definition at line 39 of file nsvdec.c.

Referenced by nsv_read_chunk(), and nsv_read_header().

#define NSV_ST_AUDIO   1

Definition at line 143 of file nsvdec.c.

Referenced by nsv_parse_NSVs_header(), and nsv_read_chunk().

#define NSV_ST_SUBT   2

Definition at line 144 of file nsvdec.c.

#define NSV_ST_VIDEO   0

Definition at line 142 of file nsvdec.c.

Referenced by nsv_parse_NSVs_header(), and nsv_read_chunk().

#define print_tag (   str,
  tag,
  size 
)
Value:
av_dlog(NULL, "%s: tag=%c%c%c%c\n", \
str, tag & 0xff, \
(tag >> 8) & 0xff, \
(tag >> 16) & 0xff, \
(tag >> 24) & 0xff);
av_dlog(ac->avr,"%d samples - audio_convert: %s to %s (%s)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt), use_generic?ac->func_descr_generic:ac->func_descr)
uint32_t tag
Definition: movenc.c:894
NULL
Definition: eval.c:55

Definition at line 219 of file nsvdec.c.

Referenced by nsv_parse_NSVs_header().

#define T_ASYN   MKTAG('A', 'S', 'Y', 'N') /* async a/v aux marker */

Definition at line 135 of file nsvdec.c.

#define T_KEYF   MKTAG('K', 'E', 'Y', 'F') /* video keyframe aux marker (addition) */

Definition at line 136 of file nsvdec.c.

#define T_NONE   MKTAG('N', 'O', 'N', 'E') /* null a/v 4CC */

Definition at line 133 of file nsvdec.c.

Referenced by nsv_parse_NSVs_header().

#define T_NSVF   MKTAG('N', 'S', 'V', 'f') /* file header */

Definition at line 130 of file nsvdec.c.

#define T_NSVS   MKTAG('N', 'S', 'V', 's') /* chunk header */

Definition at line 131 of file nsvdec.c.

#define T_SUBT   MKTAG('S', 'U', 'B', 'T') /* subtitle aux data */

Definition at line 134 of file nsvdec.c.

#define T_TOC2   MKTAG('T', 'O', 'C', '2') /* extra index marker */

Definition at line 132 of file nsvdec.c.

#define TB_NSVF   MKBETAG('N', 'S', 'V', 'f')

Definition at line 138 of file nsvdec.c.

Referenced by nsv_resync().

#define TB_NSVS   MKBETAG('N', 'S', 'V', 's')

Definition at line 139 of file nsvdec.c.

Typedef Documentation

typedef struct NSVStream NSVStream

Enumeration Type Documentation

enum NSVStatus
Enumerator
NSV_UNSYNC 
NSV_FOUND_NSVF 
NSV_HAS_READ_NSVF 
NSV_FOUND_NSVS 
NSV_HAS_READ_NSVS 
NSV_FOUND_BEEF 
NSV_GOT_VIDEO 
NSV_GOT_AUDIO 

Definition at line 146 of file nsvdec.c.

Function Documentation

static int nsv_parse_NSVf_header ( AVFormatContext s)
static

Definition at line 272 of file nsvdec.c.

Referenced by nsv_read_header().

static int nsv_parse_NSVs_header ( AVFormatContext s)
static

Definition at line 400 of file nsvdec.c.

Referenced by nsv_read_chunk(), and nsv_read_header().

static int nsv_probe ( AVProbeData p)
static

Definition at line 762 of file nsvdec.c.

static int nsv_read_chunk ( AVFormatContext s,
int  fill_header 
)
static

Definition at line 557 of file nsvdec.c.

Referenced by nsv_read_header(), and nsv_read_packet().

static int nsv_read_close ( AVFormatContext s)
static

Definition at line 734 of file nsvdec.c.

static int nsv_read_header ( AVFormatContext s)
static

Definition at line 521 of file nsvdec.c.

static int nsv_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 687 of file nsvdec.c.

static int nsv_read_seek ( AVFormatContext s,
int  stream_index,
int64_t  timestamp,
int  flags 
)
static

Definition at line 715 of file nsvdec.c.

static int nsv_resync ( AVFormatContext s)
static

Definition at line 227 of file nsvdec.c.

Referenced by nsv_read_chunk(), and nsv_read_header().

Variable Documentation

AVInputFormat ff_nsv_demuxer
Initial value:
= {
.name = "nsv",
.long_name = NULL_IF_CONFIG_SMALL("Nullsoft Streaming Video"),
.priv_data_size = sizeof(NSVContext),
}
static int read_seek(AVFormatContext *ctx, int stream_index, int64_t timestamp, int flags)
Definition: libcdio.c:153
static av_cold int read_close(AVFormatContext *ctx)
Definition: libcdio.c:145
static int nsv_read_close(AVFormatContext *s)
Definition: nsvdec.c:734
static int nsv_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition: nsvdec.c:687
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static int nsv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
Definition: nsvdec.c:715
static int read_probe(AVProbeData *pd)
static int nsv_probe(AVProbeData *p)
Definition: nsvdec.c:762
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:517
static int read_packet(AVFormatContext *ctx, AVPacket *pkt)
Definition: libcdio.c:114
static int nsv_read_header(AVFormatContext *s)
Definition: nsvdec.c:521

Definition at line 794 of file nsvdec.c.

const AVCodecTag nsv_codec_audio_tags[]
static
Initial value:
= {
{ AV_CODEC_ID_MP3, MKTAG('M', 'P', '3', ' ') },
{ AV_CODEC_ID_AAC, MKTAG('A', 'A', 'C', ' ') },
{ AV_CODEC_ID_AAC, MKTAG('A', 'A', 'C', 'P') },
{ AV_CODEC_ID_AAC, MKTAG('V', 'L', 'B', ' ') },
{ AV_CODEC_ID_SPEEX, MKTAG('S', 'P', 'X', ' ') },
{ AV_CODEC_ID_PCM_U16LE, MKTAG('P', 'C', 'M', ' ') },
}
preferred ID for decoding MPEG audio layer 1, 2 or 3
#define MKTAG(a, b, c, d)
Definition: common.h:282

Definition at line 206 of file nsvdec.c.

const AVCodecTag nsv_codec_video_tags[]
static
Initial value:
= {
{ AV_CODEC_ID_VP3, MKTAG('V', 'P', '3', ' ') },
{ AV_CODEC_ID_VP3, MKTAG('V', 'P', '3', '0') },
{ AV_CODEC_ID_VP3, MKTAG('V', 'P', '3', '1') },
{ AV_CODEC_ID_VP5, MKTAG('V', 'P', '5', ' ') },
{ AV_CODEC_ID_VP5, MKTAG('V', 'P', '5', '0') },
{ AV_CODEC_ID_VP6, MKTAG('V', 'P', '6', ' ') },
{ AV_CODEC_ID_VP6, MKTAG('V', 'P', '6', '0') },
{ AV_CODEC_ID_VP6, MKTAG('V', 'P', '6', '1') },
{ AV_CODEC_ID_VP6, MKTAG('V', 'P', '6', '2') },
{ AV_CODEC_ID_VP8, MKTAG('V', 'P', '8', '0') },
{ AV_CODEC_ID_MPEG4, MKTAG('X', 'V', 'I', 'D') },
{ AV_CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', '3') },
}
#define MKTAG(a, b, c, d)
Definition: common.h:282

Definition at line 186 of file nsvdec.c.