FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
crystalhd.c File Reference
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <libcrystalhd/bc_dts_types.h>
#include <libcrystalhd/bc_dts_defs.h>
#include <libcrystalhd/libcrystalhd_if.h>
#include "avcodec.h"
#include "h264.h"
#include "internal.h"
#include "libavutil/imgutils.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/opt.h"

Go to the source code of this file.

Data Structures

struct  OpaqueList
 
struct  CHDContext
 

Macros

#define _XOPEN_SOURCE   600
 
#define OUTPUT_PROC_TIMEOUT   50
 Timeout parameter passed to DtsProcOutput() in us.
 
#define TIMESTAMP_UNIT   100000
 Step between fake timestamps passed to hardware in units of 100ns.
 
#define BASE_WAIT   10000
 Initial value in us of the wait in decode()
 
#define WAIT_UNIT   1000
 Increment in us to adjust wait in decode()
 

Enumerations

enum  CopyRet {
  RET_ERROR = -1, RET_OK = 0, RET_COPY_AGAIN = 1, RET_SKIP_NEXT_COPY = 2,
  RET_COPY_NEXT_FIELD = 3
}
 

Functions

static BC_MEDIA_SUBTYPE id2subtype (CHDContext *priv, enum AVCodecID id)
 
static void print_frame_info (CHDContext *priv, BC_DTS_PROC_OUT *output)
 
static uint64_t opaque_list_push (CHDContext *priv, uint64_t reordered_opaque, uint8_t pic_type)
 
static OpaqueListopaque_list_pop (CHDContext *priv, uint64_t fake_timestamp)
 
static void flush (AVCodecContext *avctx)
 
static av_cold int uninit (AVCodecContext *avctx)
 
static av_cold int init (AVCodecContext *avctx)
 
static CopyRet copy_frame (AVCodecContext *avctx, BC_DTS_PROC_OUT *output, void *data, int *got_frame)
 
static CopyRet receive_frame (AVCodecContext *avctx, void *data, int *got_frame)
 
static int decode (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
 

Variables

static const AVOption options []
 

Macro Definition Documentation

#define _XOPEN_SOURCE   600

Definition at line 76 of file crystalhd.c.

#define OUTPUT_PROC_TIMEOUT   50

Timeout parameter passed to DtsProcOutput() in us.

Definition at line 94 of file crystalhd.c.

Referenced by receive_frame().

#define TIMESTAMP_UNIT   100000

Step between fake timestamps passed to hardware in units of 100ns.

Definition at line 96 of file crystalhd.c.

Referenced by opaque_list_push().

#define BASE_WAIT   10000

Initial value in us of the wait in decode()

Definition at line 98 of file crystalhd.c.

Referenced by decode(), flush(), and init().

#define WAIT_UNIT   1000

Increment in us to adjust wait in decode()

Definition at line 100 of file crystalhd.c.

Referenced by decode().

Enumeration Type Documentation

enum CopyRet
Enumerator:
RET_ERROR 
RET_OK 
RET_COPY_AGAIN 
RET_SKIP_NEXT_COPY 
RET_COPY_NEXT_FIELD 

Definition at line 107 of file crystalhd.c.

Function Documentation

static BC_MEDIA_SUBTYPE id2subtype ( CHDContext priv,
enum AVCodecID  id 
)
inlinestatic

Definition at line 167 of file crystalhd.c.

Referenced by init().

static void print_frame_info ( CHDContext priv,
BC_DTS_PROC_OUT *  output 
)
inlinestatic

Definition at line 187 of file crystalhd.c.

Referenced by receive_frame().

static uint64_t opaque_list_push ( CHDContext priv,
uint64_t  reordered_opaque,
uint8_t  pic_type 
)
static

Definition at line 233 of file crystalhd.c.

Referenced by decode().

static OpaqueList* opaque_list_pop ( CHDContext priv,
uint64_t  fake_timestamp 
)
static

Definition at line 263 of file crystalhd.c.

Referenced by copy_frame().

static void flush ( AVCodecContext avctx)
static

Definition at line 316 of file crystalhd.c.

static av_cold int uninit ( AVCodecContext avctx)
static

Definition at line 334 of file crystalhd.c.

Referenced by init().

static av_cold int init ( AVCodecContext avctx)
static

Definition at line 379 of file crystalhd.c.

static CopyRet copy_frame ( AVCodecContext avctx,
BC_DTS_PROC_OUT *  output,
void data,
int *  got_frame 
)
inlinestatic

Definition at line 536 of file crystalhd.c.

Referenced by receive_frame().

static CopyRet receive_frame ( AVCodecContext avctx,
void data,
int *  got_frame 
)
inlinestatic

Definition at line 732 of file crystalhd.c.

Referenced by decode().

static int decode ( AVCodecContext avctx,
void data,
int *  got_frame,
AVPacket avpkt 
)
static

Definition at line 868 of file crystalhd.c.

Referenced by show_formats().

Variable Documentation

const AVOption options[]
static
Initial value:
= {
{ "crystalhd_downscale_width",
"Turn on downscaling to the specified width",
0x42,
AV_OPT_TYPE_INT, {.i64 = 0}, 0, UINT32_MAX,
{ NULL, },
}

Definition at line 153 of file crystalhd.c.