dirac.c File Reference

Include dependency graph for dirac.c:


Data Structures

struct  picture_pts_t
struct  encoder_sys_t

Defines

#define DIRAC_RESEARCH_VERSION_ATLEAST(x, y, z)   0
#define ENC_CFG_PREFIX   "sout-dirac-"
#define ENC_QUALITY_FACTOR   "quality"
#define ENC_QUALITY_FACTOR_TEXT   N_("Constant quality factor")
#define ENC_QUALITY_FACTOR_LONGTEXT   N_("If bitrate=0, use this value for constant quality")
#define ENC_TARGETRATE   "bitrate"
#define ENC_TARGETRATE_TEXT   N_("CBR bitrate (kbps)")
#define ENC_TARGETRATE_LONGTEXT   N_("A value > 0 enables constant bitrate mode")
#define ENC_LOSSLESS   "lossless"
#define ENC_LOSSLESS_TEXT   N_("Enable lossless coding")
#define ENC_LOSSLESS_LONGTEXT
#define ENC_PREFILTER   "prefilter"
#define ENC_PREFILTER_TEXT   N_("Prefilter")
#define ENC_PREFILTER_LONGTEXT   N_("Enable adaptive prefiltering")
#define ENC_PREFILTER_STRENGTH   "prefilter-strength"
#define ENC_PREFILTER_STRENGTH_TEXT   N_("Amount of prefiltering")
#define ENC_PREFILTER_STRENGTH_LONGTEXT   N_("Higher value implies more prefiltering")
#define ENC_CHROMAFMT   "chroma-fmt"
#define ENC_CHROMAFMT_TEXT   N_("Chroma format")
#define ENC_CHROMAFMT_LONGTEXT
#define ENC_L1SEP   "l1-sep"
#define ENC_L1SEP_TEXT   N_("Distance between 'P' frames")
#define ENC_L1SEP_LONGTEXT   ENC_L1SEP_TEXT
#define ENC_L1NUM   "num-l1"
#define ENC_L1NUM_TEXT   N_("Number of 'P' frames per GOP")
#define ENC_L1NUM_LONGTEXT   ENC_L1NUM_TEXT
#define ENC_CODINGMODE   "coding-mode"
#define ENC_CODINGMODE_TEXT   N_("Picture coding mode")
#define ENC_CODINGMODE_LONGTEXT
#define ENC_MCBLK_WIDTH   "mc-blk-width"
#define ENC_MCBLK_WIDTH_TEXT   N_("Width of motion compensation blocks")
#define ENC_MCBLK_WIDTH_LONGTEXT   ""
#define ENC_MCBLK_HEIGHT   "mc-blk-height"
#define ENC_MCBLK_HEIGHT_TEXT   N_("Height of motion compensation blocks")
#define ENC_MCBLK_HEIGHT_LONGTEXT   ""
#define ENC_MCBLK_OVERLAP   "mc-blk-overlap"
#define ENC_MCBLK_OVERLAP_TEXT   N_("Block overlap (%)")
#define ENC_MCBLK_OVERLAP_LONGTEXT
#define ENC_MCBLK_XBLEN   "mc-blk-xblen"
#define ENC_MCBLK_XBLEN_TEXT   N_("xblen")
#define ENC_MCBLK_XBLEN_LONGTEXT   N_("Total horizontal block length including overlaps")
#define ENC_MCBLK_YBLEN   "mc-blk-yblen"
#define ENC_MCBLK_YBLEN_TEXT   N_("yblen")
#define ENC_MCBLK_YBLEN_LONGTEXT   N_("Total vertical block length including overlaps")
#define ENC_MVPREC   "mv-prec"
#define ENC_MVPREC_TEXT   N_("Motion vector precision")
#define ENC_MVPREC_LONGTEXT   N_("Motion vector precision in pels.")
#define ENC_ME_SIMPLESEARCH   "me-simple-search"
#define ENC_ME_SIMPLESEARCH_TEXT   N_("Simple ME search area x:y")
#define ENC_ME_SIMPLESEARCH_LONGTEXT
#define ENC_ME_COMBINED   "me-combined"
#define ENC_ME_COMBINED_TEXT   N_("Three component motion estimation")
#define ENC_ME_COMBINED_LONGTEXT   N_("Use chroma as part of the motion estimation process")
#define ENC_DWTINTRA   "dwt-intra"
#define ENC_DWTINTRA_TEXT   N_("Intra picture DWT filter")
#define ENC_DWTINTRA_LONGTEXT   ENC_DWTINTRA_TEXT
#define ENC_DWTINTER   "dwt-inter"
#define ENC_DWTINTER_TEXT   N_("Inter picture DWT filter")
#define ENC_DWTINTER_LONGTEXT   ENC_DWTINTER_TEXT
#define ENC_DWTDEPTH   "dwt-depth"
#define ENC_DWTDEPTH_TEXT   N_("Number of DWT iterations")
#define ENC_DWTDEPTH_LONGTEXT   N_("Also known as DWT levels")
#define ENC_MULTIQUANT   "multi-quant"
#define ENC_MULTIQUANT_TEXT   N_("Enable multiple quantizers")
#define ENC_MULTIQUANT_LONGTEXT   N_("Enable multiple quantizers per subband (one per codeblock)")
#define ENC_SPARTITION   "spartition"
#define ENC_SPARTITION_TEXT   N_("Enable spatial partitioning")
#define ENC_SPARTITION_LONGTEXT   ENC_SPARTITION_TEXT
#define ENC_NOAC   "noac"
#define ENC_NOAC_TEXT   N_("Disable arithmetic coding")
#define ENC_NOAC_LONGTEXT   N_("Use variable length codes instead, useful for very high bitrates")
#define ENC_CPD   "cpd"
#define ENC_CPD_TEXT   N_("cycles per degree")
#define ENC_CPD_LONGTEXT   ENC_CPD_TEXT
#define PTS_TLB_SIZE   256

Functions

static int OpenEncoder (vlc_object_t *p_this)
static void CloseEncoder (vlc_object_t *p_this)
static block_tEncode (encoder_t *p_enc, picture_t *p_pict)
int vlc_entry__main (module_t *p_module)
const char * vlc_entry_license__main (void)
static void ResetPTStlb (encoder_t *p_enc)
static void StorePicturePTS (encoder_t *p_enc, uint32_t u_pnum, mtime_t i_pts)
static mtime_t GetPicturePTS (encoder_t *p_enc, uint32_t u_pnum)
static int ReadDiracPictureNumber (uint32_t *p_picnum, block_t *p_block)

Variables

static const char *const enc_prefilter_list []
static const char *const enc_prefilter_list_text []
static const char *const enc_chromafmt_list []
static const char *const enc_chromafmt_list_text []
static const char *const enc_codingmode_list []
static const char *const enc_codingmode_list_text []
static const char *const enc_mvprec_list []
static const char *const ppsz_enc_options []
struct {
   unsigned int   i_height
   int   i_approx_fps
   VideoFormat   i_vf
dirac_format_guess []

Define Documentation

#define DIRAC_RESEARCH_VERSION_ATLEAST ( x,
y,
 )     0

#define ENC_CFG_PREFIX   "sout-dirac-"

#define ENC_CHROMAFMT   "chroma-fmt"

#define ENC_CHROMAFMT_LONGTEXT

Value:

N_("Picking chroma format will force a " \
                                  "conversion of the video into that format")

#define ENC_CHROMAFMT_TEXT   N_("Chroma format")

#define ENC_CODINGMODE   "coding-mode"

#define ENC_CODINGMODE_LONGTEXT

Value:

N_("Field coding is where interlaced fields are coded" \
                                   " seperately as opposed to a pseudo-progressive frame")

#define ENC_CODINGMODE_TEXT   N_("Picture coding mode")

#define ENC_CPD   "cpd"

#define ENC_CPD_LONGTEXT   ENC_CPD_TEXT

#define ENC_CPD_TEXT   N_("cycles per degree")

#define ENC_DWTDEPTH   "dwt-depth"

#define ENC_DWTDEPTH_LONGTEXT   N_("Also known as DWT levels")

#define ENC_DWTDEPTH_TEXT   N_("Number of DWT iterations")

#define ENC_DWTINTER   "dwt-inter"

#define ENC_DWTINTER_LONGTEXT   ENC_DWTINTER_TEXT

#define ENC_DWTINTER_TEXT   N_("Inter picture DWT filter")

#define ENC_DWTINTRA   "dwt-intra"

#define ENC_DWTINTRA_LONGTEXT   ENC_DWTINTRA_TEXT

#define ENC_DWTINTRA_TEXT   N_("Intra picture DWT filter")

#define ENC_L1NUM   "num-l1"

#define ENC_L1NUM_LONGTEXT   ENC_L1NUM_TEXT

#define ENC_L1NUM_TEXT   N_("Number of 'P' frames per GOP")

#define ENC_L1SEP   "l1-sep"

#define ENC_L1SEP_LONGTEXT   ENC_L1SEP_TEXT

#define ENC_L1SEP_TEXT   N_("Distance between 'P' frames")

#define ENC_LOSSLESS   "lossless"

#define ENC_LOSSLESS_LONGTEXT

Value:

N_("Lossless coding ignores bitrate and quality settings, " \
                                 "allowing for perfect reproduction of the original")

#define ENC_LOSSLESS_TEXT   N_("Enable lossless coding")

#define ENC_MCBLK_HEIGHT   "mc-blk-height"

#define ENC_MCBLK_HEIGHT_LONGTEXT   ""

#define ENC_MCBLK_HEIGHT_TEXT   N_("Height of motion compensation blocks")

#define ENC_MCBLK_OVERLAP   "mc-blk-overlap"

#define ENC_MCBLK_OVERLAP_LONGTEXT

Value:

N_("Amount that each motion block should " \
                                       "be overlapped by its neighbours")

#define ENC_MCBLK_OVERLAP_TEXT   N_("Block overlap (%)")

#define ENC_MCBLK_WIDTH   "mc-blk-width"

#define ENC_MCBLK_WIDTH_LONGTEXT   ""

#define ENC_MCBLK_WIDTH_TEXT   N_("Width of motion compensation blocks")

#define ENC_MCBLK_XBLEN   "mc-blk-xblen"

#define ENC_MCBLK_XBLEN_LONGTEXT   N_("Total horizontal block length including overlaps")

#define ENC_MCBLK_XBLEN_TEXT   N_("xblen")

#define ENC_MCBLK_YBLEN   "mc-blk-yblen"

#define ENC_MCBLK_YBLEN_LONGTEXT   N_("Total vertical block length including overlaps")

#define ENC_MCBLK_YBLEN_TEXT   N_("yblen")

#define ENC_ME_COMBINED   "me-combined"

#define ENC_ME_COMBINED_LONGTEXT   N_("Use chroma as part of the motion estimation process")

#define ENC_ME_COMBINED_TEXT   N_("Three component motion estimation")

#define ENC_ME_SIMPLESEARCH   "me-simple-search"

#define ENC_ME_SIMPLESEARCH_LONGTEXT

Value:

N_("(Not recommended) Perform a simple (non hierarchical " \
                                        "block matching motion vector search with search range " \
                                        "of +/-x, +/-y")

#define ENC_ME_SIMPLESEARCH_TEXT   N_("Simple ME search area x:y")

#define ENC_MULTIQUANT   "multi-quant"

#define ENC_MULTIQUANT_LONGTEXT   N_("Enable multiple quantizers per subband (one per codeblock)")

#define ENC_MULTIQUANT_TEXT   N_("Enable multiple quantizers")

#define ENC_MVPREC   "mv-prec"

#define ENC_MVPREC_LONGTEXT   N_("Motion vector precision in pels.")

#define ENC_MVPREC_TEXT   N_("Motion vector precision")

#define ENC_NOAC   "noac"

#define ENC_NOAC_LONGTEXT   N_("Use variable length codes instead, useful for very high bitrates")

#define ENC_NOAC_TEXT   N_("Disable arithmetic coding")

#define ENC_PREFILTER   "prefilter"

#define ENC_PREFILTER_LONGTEXT   N_("Enable adaptive prefiltering")

#define ENC_PREFILTER_STRENGTH   "prefilter-strength"

#define ENC_PREFILTER_STRENGTH_LONGTEXT   N_("Higher value implies more prefiltering")

#define ENC_PREFILTER_STRENGTH_TEXT   N_("Amount of prefiltering")

#define ENC_PREFILTER_TEXT   N_("Prefilter")

#define ENC_QUALITY_FACTOR   "quality"

#define ENC_QUALITY_FACTOR_LONGTEXT   N_("If bitrate=0, use this value for constant quality")

#define ENC_QUALITY_FACTOR_TEXT   N_("Constant quality factor")

#define ENC_SPARTITION   "spartition"

#define ENC_SPARTITION_LONGTEXT   ENC_SPARTITION_TEXT

#define ENC_SPARTITION_TEXT   N_("Enable spatial partitioning")

#define ENC_TARGETRATE   "bitrate"

#define ENC_TARGETRATE_LONGTEXT   N_("A value > 0 enables constant bitrate mode")

#define ENC_TARGETRATE_TEXT   N_("CBR bitrate (kbps)")

#define PTS_TLB_SIZE   256


Function Documentation

static void CloseEncoder ( vlc_object_t p_this  )  [static]

static block_t * Encode ( encoder_t p_enc,
picture_t p_pict 
) [static]

static mtime_t GetPicturePTS ( encoder_t p_enc,
uint32_t  u_pnum 
) [static]

static int OpenEncoder ( vlc_object_t p_this  )  [static]

static int ReadDiracPictureNumber ( uint32_t *  p_picnum,
block_t p_block 
) [static]

References GetDWBE, block_t::i_buffer, and block_t::p_buffer.

Referenced by Encode().

static void ResetPTStlb ( encoder_t p_enc  )  [static]

static void StorePicturePTS ( encoder_t p_enc,
uint32_t  u_pnum,
mtime_t  i_pts 
) [static]

int vlc_entry__main ( module_t p_module  ) 

const char* vlc_entry_license__main ( void   ) 


Variable Documentation

struct { ... } dirac_format_guess[] [static]

const char* const enc_chromafmt_list[] [static]

Initial value:

  { "420", "422", "444" }

const char* const enc_chromafmt_list_text[] [static]

Initial value:

  { N_("4:2:0"), N_("4:2:2"), N_("4:4:4") }

const char* const enc_codingmode_list[] [static]

Initial value:

  { "auto", "progressive", "field" }

const char* const enc_codingmode_list_text[] [static]

Initial value:

  { N_("auto - let encoder decide based upon input (Best)"),
    N_("force coding frame as single picture"),
    N_("force coding frame as seperate interlaced fields"),
  }

const char* const enc_mvprec_list[] [static]

Initial value:

  { "1", "1/2", "1/4", "1/8" }

const char* const enc_prefilter_list[] [static]

Initial value:

  { "none", "cwm", "rectlp", "diaglp" }

const char* const enc_prefilter_list_text[] [static]

Initial value:

  { N_("none"), N_("Centre Weighted Median"),
    N_("Rectangular Linear Phase"), N_("Diagonal Linear Phase") }

unsigned int i_height

VideoFormat i_vf

const char* const ppsz_enc_options[] [static]

Initial value:

 {
     "quality" ,  "bitrate" ,  "lossless" ,  "prefilter" ,  "prefilter-strength" ,
     "chroma-fmt" ,  "l1-sep" ,  "num-l1" ,  "coding-mode" ,
     "mc-blk-width" ,  "mc-blk-height" ,  "mc-blk-overlap" ,
     "mv-prec" ,  "me-simple-search" ,  "me-combined" ,
     "dwt-intra" ,  "dwt-inter" ,  "dwt-depth" ,
     "multi-quant" ,  "spartition" ,  "noac" ,
     "cpd" ,
    NULL
}


Generated on Tue May 25 08:05:12 2010 for VLC by  doxygen 1.5.6