libavcodec/dvdata.h File Reference

Constants for DV codec. More...

#include "libavutil/rational.h"
#include "avcodec.h"

Go to the source code of this file.

Data Structures

struct  DVwork_chunk
struct  DVprofile

Defines

#define DV_PROFILE_IS_HD(p)   ((p)->video_stype & 0x10)
#define DV_PROFILE_IS_1080i50(p)   (((p)->video_stype == 0x14) && ((p)->dsf == 1))
#define DV_PROFILE_IS_720p50(p)   (((p)->video_stype == 0x18) && ((p)->dsf == 1))
#define DV_PROFILE_BYTES   (6*80)
#define DV_MAX_FRAME_SIZE   576000
 largest possible DV frame, in bytes (1080i50)
#define DV_MAX_BPM   8
 maximum number of blocks per macroblock in any DV format

Enumerations

enum  dv_section_type {
  dv_sect_header = 0x1f, dv_sect_subcode = 0x3f, dv_sect_vaux = 0x56, dv_sect_audio = 0x76,
  dv_sect_video = 0x96
}
enum  dv_pack_type {
  dv_header525 = 0x3f, dv_header625 = 0xbf, dv_timecode = 0x13, dv_audio_source = 0x50,
  dv_audio_control = 0x51, dv_audio_recdate = 0x52, dv_audio_rectime = 0x53, dv_video_source = 0x60,
  dv_video_control = 0x61, dv_video_recdate = 0x62, dv_video_rectime = 0x63, dv_unknown_pack = 0xff
}

Functions

const DVprofileff_dv_frame_profile (const DVprofile *sys, const uint8_t *frame, unsigned buf_size)
const DVprofileff_dv_codec_profile (AVCodecContext *codec)
static int dv_write_dif_id (enum dv_section_type t, uint8_t chan_num, uint8_t seq_num, uint8_t dif_num, uint8_t *buf)
static int dv_write_ssyb_id (uint8_t syb_num, uint8_t fr, uint8_t *buf)

Variables

static const uint8_t dv_quant_shifts [22][4]
static const uint8_t dv_quant_offset [4] = { 6, 3, 0, 1 }
static const uint8_t dv_quant_areas [4] = { 6, 21, 43, 64 }
static const uint8_t dv100_qstep [16]
static const int dv_weight_bits = 18
static const int dv_weight_88 [64]
static const int dv_weight_248 [64]
static const int dv_iweight_bits = 14
static const int dv_iweight_88 [64]
static const int dv_iweight_248 [64]
static const int dv_iweight_1080_y [64]
 The "inverse" DV100 weights are actually just the spec weights (zig-zagged).
static const int dv_iweight_1080_c [64]
static const int dv_iweight_720_y [64]
static const int dv_iweight_720_c [64]
static const uint8_t dv_audio_shuffle525 [10][9]
static const uint8_t dv_audio_shuffle625 [12][9]
static const av_unused int dv_audio_frequency [3]
static const uint8_t block_sizes_dv2550 [8]
static const uint8_t block_sizes_dv100 [8]


Detailed Description

Constants for DV codec.

Definition in file dvdata.h.


Define Documentation

#define DV_MAX_BPM   8

maximum number of blocks per macroblock in any DV format

Definition at line 275 of file dvdata.h.

Referenced by dv_decode_video_segment(), and dv_encode_video_segment().

#define DV_MAX_FRAME_SIZE   576000

largest possible DV frame, in bytes (1080i50)

Definition at line 270 of file dvdata.h.

#define DV_PROFILE_BYTES   (6*80)

Definition at line 265 of file dvdata.h.

Referenced by dv_produce_packet(), and dv_read_header().

#define DV_PROFILE_IS_1080i50 (  )     (((p)->video_stype == 0x14) && ((p)->dsf == 1))

Definition at line 260 of file dvdata.h.

Referenced by dv_init_dynamic_tables(), and dv_work_pool_size().

#define DV_PROFILE_IS_720p50 (  )     (((p)->video_stype == 0x18) && ((p)->dsf == 1))

Definition at line 261 of file dvdata.h.

Referenced by dv_init_dynamic_tables(), and dv_work_pool_size().

#define DV_PROFILE_IS_HD (  )     ((p)->video_stype & 0x10)

Definition at line 259 of file dvdata.h.

Referenced by dv_decode_video_segment(), and dv_init_dynamic_tables().


Enumeration Type Documentation

Enumerator:
dv_header525 
dv_header625 
dv_timecode 
dv_audio_source 
dv_audio_control 
dv_audio_recdate 
dv_audio_rectime 
dv_video_source 
dv_video_control 
dv_video_recdate 
dv_video_rectime 
dv_unknown_pack 

Definition at line 244 of file dvdata.h.

Enumerator:
dv_sect_header 
dv_sect_subcode 
dv_sect_vaux 
dv_sect_audio 
dv_sect_video 

Definition at line 236 of file dvdata.h.


Function Documentation

static int dv_write_dif_id ( enum dv_section_type  t,
uint8_t  chan_num,
uint8_t  seq_num,
uint8_t  dif_num,
uint8_t *  buf 
) [inline, static]

Definition at line 281 of file dvdata.h.

static int dv_write_ssyb_id ( uint8_t  syb_num,
uint8_t  fr,
uint8_t *  buf 
) [inline, static]

Definition at line 294 of file dvdata.h.

const DVprofile* ff_dv_codec_profile ( AVCodecContext codec  ) 

Definition at line 273 of file dvdata.c.

Referenced by dv_frame_offset(), dv_init_mux(), and dvvideo_init_encoder().

const DVprofile* ff_dv_frame_profile ( const DVprofile sys,
const uint8_t *  frame,
unsigned  buf_size 
)

Definition at line 248 of file dvdata.c.

Referenced by dv_produce_packet(), and dv_read_header().


Variable Documentation

const uint8_t block_sizes_dv100[8] [static]

Initial value:

 {
    80, 80, 80, 80, 80, 80, 64, 64,
}

Definition at line 232 of file dvdata.h.

const uint8_t block_sizes_dv2550[8] [static]

Initial value:

 {
    112, 112, 112, 112, 80, 80, 0, 0,
}

Definition at line 228 of file dvdata.h.

const uint8_t dv100_qstep[16] [static]

Initial value:

 {
    1, 
    1,
    2, 3, 4, 5, 6, 7, 8, 16, 18, 20, 22, 24, 28, 52
}

Definition at line 98 of file dvdata.h.

Referenced by dv_init_dynamic_tables().

const av_unused int dv_audio_frequency[3] [static]

Initial value:

 {
    48000, 44100, 32000,
}

Definition at line 223 of file dvdata.h.

Referenced by dv_extract_audio_info().

const uint8_t dv_audio_shuffle525[10][9] [static]

Initial value:

 {
  {  0, 30, 60, 20, 50, 80, 10, 40, 70 }, 
  {  6, 36, 66, 26, 56, 86, 16, 46, 76 },
  { 12, 42, 72,  2, 32, 62, 22, 52, 82 },
  { 18, 48, 78,  8, 38, 68, 28, 58, 88 },
  { 24, 54, 84, 14, 44, 74,  4, 34, 64 },

  {  1, 31, 61, 21, 51, 81, 11, 41, 71 }, 
  {  7, 37, 67, 27, 57, 87, 17, 47, 77 },
  { 13, 43, 73,  3, 33, 63, 23, 53, 83 },
  { 19, 49, 79,  9, 39, 69, 29, 59, 89 },
  { 25, 55, 85, 15, 45, 75,  5, 35, 65 },
}

Definition at line 193 of file dvdata.h.

const uint8_t dv_audio_shuffle625[12][9] [static]

Initial value:

 {
  {   0,  36,  72,  26,  62,  98,  16,  52,  88}, 
  {   6,  42,  78,  32,  68, 104,  22,  58,  94},
  {  12,  48,  84,   2,  38,  74,  28,  64, 100},
  {  18,  54,  90,   8,  44,  80,  34,  70, 106},
  {  24,  60,  96,  14,  50,  86,   4,  40,  76},
  {  30,  66, 102,  20,  56,  92,  10,  46,  82},

  {   1,  37,  73,  27,  63,  99,  17,  53,  89}, 
  {   7,  43,  79,  33,  69, 105,  23,  59,  95},
  {  13,  49,  85,   3,  39,  75,  29,  65, 101},
  {  19,  55,  91,   9,  45,  81,  35,  71, 107},
  {  25,  61,  97,  15,  51,  87,   5,  41,  77},
  {  31,  67, 103,  21,  57,  93,  11,  47,  83},
}

Definition at line 207 of file dvdata.h.

const int dv_iweight_1080_c[64] [static]

Initial value:

 {
    128,  16,  16,  17,  17,  17,  25,  25,
     25,  25,  26,  25,  26,  25,  26,  26,
     26,  27,  27,  26,  26,  42,  38,  40,
     40,  40,  38,  42,  44,  43,  41,  41,
     41,  41,  43,  44,  91,  91,  84,  84,
     84,  91,  91,  96,  93,  86,  86,  93,
     96, 197, 191, 177, 191, 197, 203, 197,
    197, 203, 209, 219, 209, 232, 232, 246,
}

Definition at line 162 of file dvdata.h.

Referenced by dv_init_dynamic_tables().

const int dv_iweight_1080_y[64] [static]

Initial value:

 {
    128,  16,  16,  17,  17,  17,  18,  18,
     18,  18,  18,  18,  19,  18,  18,  19,
     19,  19,  19,  19,  19,  42,  38,  40,
     40,  40,  38,  42,  44,  43,  41,  41,
     41,  41,  43,  44,  45,  45,  42,  42,
     42,  45,  45,  48,  46,  43,  43,  46,
     48,  49,  48,  44,  48,  49, 101,  98,
     98, 101, 104, 109, 104, 116, 116, 123,
}
The "inverse" DV100 weights are actually just the spec weights (zig-zagged).

Definition at line 152 of file dvdata.h.

Referenced by dv_init_dynamic_tables().

const int dv_iweight_248[64] [static]

Initial value:

 {
 32768, 17735, 16710, 18079, 18725, 21400, 17735, 19196,
 19108, 21845, 16384, 17735, 18725, 21400, 16710, 18079,
 20262, 23173, 18197, 19692, 18725, 20262, 20815, 23764,
 17735, 19196, 19108, 21845, 20262, 23173, 18197, 19692,
 21400, 24457, 19284, 20867, 21400, 23173, 22017, 25191,
 18725, 20262, 20815, 23764, 21400, 24457, 19284, 20867,
 24457, 27962, 22733, 24600, 25971, 29642, 21400, 23173,
 22017, 25191, 24457, 27962, 22733, 24600, 25971, 29642,
}

Definition at line 138 of file dvdata.h.

Referenced by dv_init_dynamic_tables().

const int dv_iweight_720_c[64] [static]

Initial value:

 {
    128,  24,  24,  26,  26,  26,  36,  36,
     36,  36,  36,  36,  38,  36,  36,  38,
     38,  38,  38,  38,  38,  84,  76,  80,
     80,  80,  76,  84,  88,  86,  82,  82,
     82,  82,  86,  88, 182, 182, 168, 168,
    168, 182, 182, 192, 186, 192, 172, 186,
    192, 394, 382, 354, 382, 394, 406, 394,
    394, 406, 418, 438, 418, 464, 464, 492,
}

Definition at line 182 of file dvdata.h.

Referenced by dv_init_dynamic_tables().

const int dv_iweight_720_y[64] [static]

Initial value:

 {
    128,  16,  16,  17,  17,  17,  18,  18,
     18,  18,  18,  18,  19,  18,  18,  19,
     19,  19,  19,  19,  19,  42,  38,  40,
     40,  40,  38,  42,  44,  43,  41,  41,
     41,  41,  43,  44,  68,  68,  63,  63,
     63,  68,  68,  96,  92,  86,  86,  92,
     96,  98,  96,  88,  96,  98, 202, 196,
    196, 202, 208, 218, 208, 232, 232, 246,
}

Definition at line 172 of file dvdata.h.

Referenced by dv_init_dynamic_tables().

const int dv_iweight_88[64] [static]

Initial value:

 {
 32768, 16710, 16710, 17735, 17015, 17735, 18197, 18079,
 18079, 18197, 18725, 18559, 19196, 18559, 18725, 19284,
 19108, 19692, 19692, 19108, 19284, 21400, 19645, 20262,
 20214, 20262, 19645, 21400, 22733, 21845, 20867, 20815,
 20815, 20867, 21845, 22733, 23173, 23173, 21400, 21400,
 21400, 23173, 23173, 24600, 23764, 22017, 22017, 23764,
 24600, 25267, 24457, 22672, 24457, 25267, 25971, 25191,
 25191, 25971, 26715, 27962, 26715, 29642, 29642, 31536,
}

Definition at line 128 of file dvdata.h.

Referenced by dv_init_dynamic_tables().

const int dv_iweight_bits = 14 [static]

Definition at line 127 of file dvdata.h.

Referenced by dv_decode_ac().

const uint8_t dv_quant_areas[4] = { 6, 21, 43, 64 } [static]

Definition at line 95 of file dvdata.h.

Referenced by dv_init_dynamic_tables().

const uint8_t dv_quant_offset[4] = { 6, 3, 0, 1 } [static]

Definition at line 94 of file dvdata.h.

Referenced by dv_decode_video_segment(), and dv_guess_qnos().

const uint8_t dv_quant_shifts[22][4] [static]

Initial value:

 {
  { 3,3,4,4 },
  { 3,3,4,4 },
  { 2,3,3,4 },
  { 2,3,3,4 },
  { 2,2,3,3 },
  { 2,2,3,3 },
  { 1,2,2,3 },
  { 1,2,2,3 },
  { 1,1,2,2 },
  { 1,1,2,2 },
  { 0,1,1,2 },
  { 0,1,1,2 },
  { 0,0,1,1 },
  { 0,0,1,1 },
  { 0,0,0,1 },
  { 0,0,0,0 },
  { 0,0,0,0 },
  { 0,0,0,0 },
  { 0,0,0,0 },
  { 0,0,0,0 },
  { 0,0,0,0 },
  { 0,0,0,0 },
}

Definition at line 69 of file dvdata.h.

Referenced by dv_guess_qnos(), and dv_init_dynamic_tables().

const int dv_weight_248[64] [static]

Initial value:

 {
 131072, 242189, 257107, 237536, 229376, 200636, 242189, 223754,
 224969, 196781, 262144, 242189, 229376, 200636, 257107, 237536,
 211916, 185364, 235923, 217965, 229376, 211916, 206433, 180568,
 242189, 223754, 224969, 196781, 211916, 185364, 235923, 217965,
 200704, 175557, 222935, 205965, 200636, 185364, 195068, 170627,
 229376, 211916, 206433, 180568, 200704, 175557, 222935, 205965,
 175557, 153560, 188995, 174609, 165371, 144651, 200636, 185364,
 195068, 170627, 175557, 153560, 188995, 174609, 165371, 144651,
}

Definition at line 117 of file dvdata.h.

Referenced by dv_init_enc_block().

const int dv_weight_88[64] [static]

Initial value:

 {
 131072, 257107, 257107, 242189, 252167, 242189, 235923, 237536,
 237536, 235923, 229376, 231390, 223754, 231390, 229376, 222935,
 224969, 217965, 217965, 224969, 222935, 200636, 218652, 211916,
 212325, 211916, 218652, 200636, 188995, 196781, 205965, 206433,
 206433, 205965, 196781, 188995, 185364, 185364, 200636, 200704,
 200636, 185364, 185364, 174609, 180568, 195068, 195068, 180568,
 174609, 170091, 175557, 189591, 175557, 170091, 165371, 170627,
 170627, 165371, 160727, 153560, 160727, 144651, 144651, 136258,
}

Definition at line 107 of file dvdata.h.

Referenced by dv_init_enc_block().

const int dv_weight_bits = 18 [static]

Definition at line 106 of file dvdata.h.

Referenced by dv_init_enc_block().


Generated on Fri Oct 26 02:36:51 2012 for FFmpeg by  doxygen 1.5.8