FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
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"

Go to the source code of this file.

Data Structures

struct  NSVStream
 
struct  NSVContext
 

Macros

#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)
 

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 NSV_MAX_RESYNC   (500*1024)

Definition at line 34 of file nsvdec.c.

Referenced by nsv_resync().

#define NSV_MAX_RESYNC_TRIES   300

Definition at line 35 of file nsvdec.c.

Referenced by nsv_read_chunk(), and nsv_read_header().

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

Definition at line 126 of file nsvdec.c.

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

Definition at line 127 of file nsvdec.c.

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

Definition at line 128 of file nsvdec.c.

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

Definition at line 129 of file nsvdec.c.

Referenced by nsv_parse_NSVs_header().

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

Definition at line 130 of file nsvdec.c.

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

Definition at line 131 of file nsvdec.c.

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

Definition at line 132 of file nsvdec.c.

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

Definition at line 134 of file nsvdec.c.

Referenced by nsv_resync().

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

Definition at line 135 of file nsvdec.c.

#define NSV_ST_VIDEO   0

Definition at line 138 of file nsvdec.c.

Referenced by nsv_parse_NSVs_header(), and nsv_read_chunk().

#define NSV_ST_AUDIO   1

Definition at line 139 of file nsvdec.c.

Referenced by nsv_parse_NSVs_header(), and nsv_read_chunk().

#define NSV_ST_SUBT   2

Definition at line 140 of file nsvdec.c.

#define print_tag (   str,
  tag,
  size 
)
Value:
av_log(NULL, AV_LOG_TRACE, "%s: tag=%c%c%c%c\n", \
str, tag & 0xff, \
(tag >> 8) & 0xff, \
(tag >> 16) & 0xff, \
(tag >> 24) & 0xff);
#define NULL
Definition: coverity.c:32
#define AV_LOG_TRACE
Extremely verbose debugging, useful for libav* development.
Definition: log.h:202
uint32_t tag
Definition: movenc.c:1334
#define av_log(a,...)

Definition at line 215 of file nsvdec.c.

Referenced by nsv_parse_NSVs_header().

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 142 of file nsvdec.c.

Function Documentation

static int nsv_read_chunk ( AVFormatContext s,
int  fill_header 
)
static

Definition at line 530 of file nsvdec.c.

Referenced by nsv_read_header(), and nsv_read_packet().

static int nsv_resync ( AVFormatContext s)
static

Definition at line 223 of file nsvdec.c.

Referenced by nsv_read_chunk(), and nsv_read_header().

static int nsv_parse_NSVf_header ( AVFormatContext s)
static

Definition at line 268 of file nsvdec.c.

Referenced by nsv_read_header().

static int nsv_parse_NSVs_header ( AVFormatContext s)
static

Definition at line 377 of file nsvdec.c.

Referenced by nsv_read_chunk(), and nsv_read_header().

static int nsv_read_header ( AVFormatContext s)
static

Definition at line 494 of file nsvdec.c.

static int nsv_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 662 of file nsvdec.c.

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

Definition at line 690 of file nsvdec.c.

static int nsv_read_close ( AVFormatContext s)
static

Definition at line 709 of file nsvdec.c.

static int nsv_probe ( AVProbeData p)
static

Definition at line 722 of file nsvdec.c.

Variable Documentation

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:330

Definition at line 182 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
Definition: avcodec.h:425
#define MKTAG(a, b, c, d)
Definition: common.h:330

Definition at line 202 of file nsvdec.c.

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:709
static int nsv_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition: nsvdec.c:662
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:175
static int nsv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
Definition: nsvdec.c:690
static int read_probe(AVProbeData *pd)
Definition: jvdec.c:55
static int nsv_probe(AVProbeData *p)
Definition: nsvdec.c:722
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
static int nsv_read_header(AVFormatContext *s)
Definition: nsvdec.c:494

Definition at line 753 of file nsvdec.c.