FFmpeg
Data Structures | Macros | Functions | Variables
vividas.c File Reference

Vividas VIV (.viv) file demuxer. More...

#include "libavutil/intreadwrite.h"
#include "avio_internal.h"
#include "avformat.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  VIV_SB_block
 
struct  VIV_SB_entry
 
struct  VIV_AudioSubpacket
 
struct  VividasDemuxContext
 

Macros

#define MAX_AUDIO_SUBPACKETS   100
 

Functions

static int viv_probe (const AVProbeData *p)
 
static uint32_t decode_key (uint8_t *buf)
 
static void put_v (uint8_t *p, unsigned v)
 
static unsigned recover_key (unsigned char sample[4], unsigned expected_size)
 
static void xor_block (void *p1, void *p2, unsigned size, int key, unsigned *key_ptr)
 
static void decode_block (uint8_t *src, uint8_t *dest, unsigned size, uint32_t key, uint32_t *key_ptr, int align)
 
static uint32_t get_v (uint8_t *p, int len)
 
static uint8_tread_vblock (AVIOContext *src, uint32_t *size, uint32_t key, uint32_t *k2, int align)
 
static uint8_tread_sb_block (AVIOContext *src, unsigned *size, uint32_t *key, unsigned expected_size)
 
static void track_header (VividasDemuxContext *viv, AVFormatContext *s, uint8_t *buf, int size)
 
static void track_index (VividasDemuxContext *viv, AVFormatContext *s, uint8_t *buf, unsigned size)
 
static void load_sb_block (AVFormatContext *s, VividasDemuxContext *viv, unsigned expected_size)
 
static int viv_read_header (AVFormatContext *s)
 
static int viv_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static int viv_read_close (AVFormatContext *s)
 
static int viv_read_seek (AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
 

Variables

static const uint8_t keybits [32]
 
AVInputFormat ff_vividas_demuxer
 

Detailed Description

Vividas VIV (.viv) file demuxer.

Author
Andrzej Szombierski [qq at kuku eu org] (2010-07)
See also
http://wiki.multimedia.cx/index.php?title=Vividas_VIV

Definition in file vividas.c.

Macro Definition Documentation

#define MAX_AUDIO_SUBPACKETS   100

Definition at line 36 of file vividas.c.

Referenced by viv_read_packet().

Function Documentation

static int viv_probe ( const AVProbeData p)
static

Definition at line 73 of file vividas.c.

static uint32_t decode_key ( uint8_t buf)
static

Definition at line 88 of file vividas.c.

Referenced by viv_read_header().

static void put_v ( uint8_t p,
unsigned  v 
)
static

Definition at line 100 of file vividas.c.

Referenced by recover_key().

static unsigned recover_key ( unsigned char  sample[4],
unsigned  expected_size 
)
static

Definition at line 112 of file vividas.c.

Referenced by read_sb_block().

static void xor_block ( void p1,
void p2,
unsigned  size,
int  key,
unsigned *  key_ptr 
)
static

Definition at line 121 of file vividas.c.

Referenced by decode_block().

static void decode_block ( uint8_t src,
uint8_t dest,
unsigned  size,
uint32_t  key,
uint32_t *  key_ptr,
int  align 
)
static

Definition at line 140 of file vividas.c.

Referenced by read_sb_block(), and read_vblock().

static uint32_t get_v ( uint8_t p,
int  len 
)
static

Definition at line 178 of file vividas.c.

Referenced by read_sb_block(), and read_vblock().

static uint8_t* read_vblock ( AVIOContext src,
uint32_t *  size,
uint32_t  key,
uint32_t *  k2,
int  align 
)
static

Definition at line 193 of file vividas.c.

Referenced by viv_read_header().

static uint8_t* read_sb_block ( AVIOContext src,
unsigned *  size,
uint32_t *  key,
unsigned  expected_size 
)
static

Definition at line 228 of file vividas.c.

Referenced by load_sb_block().

static void track_header ( VividasDemuxContext viv,
AVFormatContext s,
uint8_t buf,
int  size 
)
static

Definition at line 273 of file vividas.c.

Referenced by viv_read_header().

static void track_index ( VividasDemuxContext viv,
AVFormatContext s,
uint8_t buf,
unsigned  size 
)
static

Definition at line 401 of file vividas.c.

Referenced by ff_mov_add_hinted_packet(), and viv_read_header().

static void load_sb_block ( AVFormatContext s,
VividasDemuxContext viv,
unsigned  expected_size 
)
static

Definition at line 445 of file vividas.c.

Referenced by viv_read_header(), viv_read_packet(), and viv_read_seek().

static int viv_read_header ( AVFormatContext s)
static

Definition at line 489 of file vividas.c.

static int viv_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 576 of file vividas.c.

static int viv_read_close ( AVFormatContext s)
static

Definition at line 673 of file vividas.c.

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

Definition at line 685 of file vividas.c.

Variable Documentation

const uint8_t keybits[32]
static
Initial value:
= {
20, 52, 111, 10, 27, 71, 142, 53,
82, 138, 1, 78, 86, 121, 183, 85,
105, 152, 39, 140, 172, 11, 64, 144,
155, 6, 71, 163, 186, 49, 126, 43,
}

Definition at line 81 of file vividas.c.

Referenced by decode_key().

AVInputFormat ff_vividas_demuxer
Initial value:
= {
.name = "vividas",
.long_name = NULL_IF_CONFIG_SMALL("Vividas VIV"),
.priv_data_size = sizeof(VividasDemuxContext),
}
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
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
static int viv_read_header(AVFormatContext *s)
Definition: vividas.c:489
static int viv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
Definition: vividas.c:685
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:530
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
Definition: avio_reading.c:42
static int viv_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition: vividas.c:576
static int read_probe(const AVProbeData *pd)
Definition: jvdec.c:55
static int viv_read_close(AVFormatContext *s)
Definition: vividas.c:673
static int viv_probe(const AVProbeData *p)
Definition: vividas.c:73

Definition at line 716 of file vividas.c.