MythTV  master
Macros | Functions | Variables
element.cpp File Reference
#include <cstdio>
#include <cstring>
#include "element.h"
#include "mpg_common.h"
#include "pes.h"
#include "libmythbase/mythlogging.h"
Include dependency graph for element.cpp:

Go to the source code of this file.

Macros

#define DEBUG   true
 

Functions

uint64_t add_pts_audio (uint64_t pts, audio_frame_t *aframe, uint64_t frames)
 
void fix_audio_count (uint64_t *acount, audio_frame_t *aframe, uint64_t origpts, uint64_t pts)
 
uint64_t next_ptsdts_video (uint64_t *pts, sequence_t *s, uint64_t fcount, uint64_t gcount)
 
void fix_video_count (sequence_t *s, uint64_t *frame, uint64_t origpts, uint64_t pts, uint64_t origdts, uint64_t dts)
 
void pts2time (uint64_t pts, uint8_t *buf, int len)
 
int get_video_info (ringbuffer *rbuf, sequence_t *s, int off, int le)
 
int find_audio_sync (ringbuffer *rbuf, audio_sync_buf &buf, int off, int type, int le)
 
int find_audio_s (const uint8_t *rbuf, int off, int type, int le)
 
int check_audio_header (ringbuffer *rbuf, audio_frame_t *af, int off, int le, int type)
 
int get_audio_info (ringbuffer *rbuf, audio_frame_t *af, int off, int le)
 
int get_ac3_info (ringbuffer *rbuf, audio_frame_t *af, int off, int le)
 
int get_video_ext_info (ringbuffer *rbuf, sequence_t *s, int off, int le)
 

Variables

std::array< unsigned int, 4 > slotsPerLayer {12, 144, 0, 0}
 
std::array< std::array< unsigned int, 16 >, 3 > bitrates
 
static const std::array< const uint32_t, 4 > freq {441, 480, 320, 0}
 
static const std::array< const uint64_t, 4 > samples {384, 1152, 1152, 1536}
 
static const std::array< const uint16_t, 32 > ac3_bitrates
 
static const std::array< const uint8_t, 12 > ac3half {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3}
 
static const std::array< const uint32_t, 4 > ac3_freq {480, 441, 320, 0}
 

Macro Definition Documentation

◆ DEBUG

#define DEBUG   true

Definition at line 54 of file element.cpp.

Function Documentation

◆ add_pts_audio()

uint64_t add_pts_audio ( uint64_t  pts,
audio_frame_t aframe,
uint64_t  frames 
)

Definition at line 56 of file element.cpp.

Referenced by analyze_audio().

◆ fix_audio_count()

void fix_audio_count ( uint64_t *  acount,
audio_frame_t aframe,
uint64_t  origpts,
uint64_t  pts 
)

Definition at line 65 of file element.cpp.

Referenced by analyze_audio().

◆ next_ptsdts_video()

uint64_t next_ptsdts_video ( uint64_t *  pts,
sequence_t s,
uint64_t  fcount,
uint64_t  gcount 
)

Definition at line 76 of file element.cpp.

Referenced by analyze_video().

◆ fix_video_count()

void fix_video_count ( sequence_t s,
uint64_t *  frame,
uint64_t  origpts,
uint64_t  pts,
uint64_t  origdts,
uint64_t  dts 
)

Definition at line 117 of file element.cpp.

Referenced by analyze_video().

◆ pts2time()

void pts2time ( uint64_t  pts,
uint8_t *  buf,
int  len 
)

Definition at line 154 of file element.cpp.

Referenced by writeout_video().

◆ get_video_info()

int get_video_info ( ringbuffer rbuf,
sequence_t s,
int  off,
int  le 
)

Definition at line 195 of file element.cpp.

Referenced by analyze_video().

◆ find_audio_sync()

int find_audio_sync ( ringbuffer rbuf,
audio_sync_buf buf,
int  off,
int  type,
int  le 
)

Definition at line 327 of file element.cpp.

Referenced by analyze_audio(), check_audio_header(), get_ac3_info(), and get_audio_info().

◆ find_audio_s()

int find_audio_s ( const uint8_t *  rbuf,
int  off,
int  type,
int  le 
)

Definition at line 377 of file element.cpp.

Referenced by pes_id_out().

◆ check_audio_header()

int check_audio_header ( ringbuffer rbuf,
audio_frame_t af,
int  off,
int  le,
int  type 
)

Definition at line 419 of file element.cpp.

Referenced by analyze_audio().

◆ get_audio_info()

int get_audio_info ( ringbuffer rbuf,
audio_frame_t af,
int  off,
int  le 
)

Definition at line 482 of file element.cpp.

Referenced by analyze_audio().

◆ get_ac3_info()

int get_ac3_info ( ringbuffer rbuf,
audio_frame_t af,
int  off,
int  le 
)

Definition at line 533 of file element.cpp.

Referenced by analyze_audio().

◆ get_video_ext_info()

int get_video_ext_info ( ringbuffer rbuf,
sequence_t s,
int  off,
int  le 
)

Definition at line 590 of file element.cpp.

Referenced by analyze_video().

Variable Documentation

◆ slotsPerLayer

std::array<unsigned int,4> slotsPerLayer {12, 144, 0, 0}

Definition at line 38 of file element.cpp.

Referenced by get_audio_info().

◆ bitrates

std::array<std::array<unsigned int,16>,3> bitrates
Initial value:
{{
{0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,0},
{0,32,48,56,64,80,96,112,128,160,192,224,256,320,384,0},
{0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,0}
}}

Definition at line 39 of file element.cpp.

Referenced by check_audio_header(), and get_audio_info().

◆ freq

const std::array<const uint32_t,4> freq {441, 480, 320, 0}
static

◆ samples

const std::array<const uint64_t,4> samples {384, 1152, 1152, 1536}
static

◆ ac3_bitrates

const std::array<const uint16_t,32> ac3_bitrates
static
Initial value:
{32,40,48,56,64,80,96,112,128,160,192,224,256,320,384,448,512,576,640,
0,0,0,0,0,0,0,0,0,0,0,0,0}

Definition at line 49 of file element.cpp.

Referenced by check_audio_header(), and get_ac3_info().

◆ ac3half

const std::array<const uint8_t,12> ac3half {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3}
static

Definition at line 51 of file element.cpp.

Referenced by check_audio_header(), and get_ac3_info().

◆ ac3_freq

const std::array<const uint32_t,4> ac3_freq {480, 441, 320, 0}
static

Definition at line 52 of file element.cpp.

Referenced by check_audio_header(), and get_ac3_info().