#include "config_components.h"
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <libcrystalhd/bc_dts_types.h>
#include <libcrystalhd/bc_dts_defs.h>
#include <libcrystalhd/libcrystalhd_if.h>
#include "avcodec.h"
#include "codec_internal.h"
#include "decode.h"
#include "internal.h"
#include "libavutil/imgutils.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/opt.h"
Go to the source code of this file.
|
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) |
|
static OpaqueList * | opaque_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, AVFrame *frame, int *got_frame) |
|
static CopyRet | receive_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame) |
|
static int | crystalhd_decode_packet (AVCodecContext *avctx, const AVPacket *avpkt) |
|
static int | crystalhd_receive_frame (AVCodecContext *avctx, AVFrame *frame) |
|
◆ _XOPEN_SOURCE
#define _XOPEN_SOURCE 600 |
◆ OUTPUT_PROC_TIMEOUT
#define OUTPUT_PROC_TIMEOUT 50 |
Timeout parameter passed to DtsProcOutput() in us.
Definition at line 72 of file crystalhd.c.
◆ TIMESTAMP_UNIT
#define TIMESTAMP_UNIT 100000 |
Step between fake timestamps passed to hardware in units of 100ns.
Definition at line 74 of file crystalhd.c.
◆ DEFINE_CRYSTALHD_DECODER
#define DEFINE_CRYSTALHD_DECODER |
( |
|
x, |
|
|
|
X, |
|
|
|
bsf_name |
|
) |
| |
Value: static const AVClass x##_crystalhd_class = { \
}; \
const
FFCodec ff_##x##_crystalhd_decoder = { \
.
p.
name = #x
"_crystalhd", \
.p.id = AV_CODEC_ID_##
X, \
.p.priv_class = &x##_crystalhd_class, \
.bsfs = bsf_name, \
.p.wrapper_name = "crystalhd", \
};
Definition at line 770 of file crystalhd.c.
◆ CopyRet
Enumerator |
---|
RET_ERROR | |
RET_OK | |
RET_COPY_AGAIN | |
Definition at line 81 of file crystalhd.c.
◆ id2subtype()
◆ print_frame_info()
static void print_frame_info |
( |
CHDContext * |
priv, |
|
|
BC_DTS_PROC_OUT * |
output |
|
) |
| |
|
inlinestatic |
◆ opaque_list_push()
static uint64_t opaque_list_push |
( |
CHDContext * |
priv, |
|
|
uint64_t |
reordered_opaque |
|
) |
| |
|
static |
◆ opaque_list_pop()
◆ flush()
◆ uninit()
◆ init()
◆ copy_frame()
◆ receive_frame()
◆ crystalhd_decode_packet()
◆ crystalhd_receive_frame()
◆ options
Initial value:= {
{ "crystalhd_downscale_width",
"Turn on downscaling to the specified width",
0x42,
}
Definition at line 112 of file crystalhd.c.
static const AVOption options[]
AVPixelFormat
Pixel format.
#define AV_OPT_FLAG_VIDEO_PARAM
#define AV_CODEC_CAP_HARDWARE
Codec is backed by a hardware implementation.
AVCodec p
The public AVCodec.
#define LIBAVUTIL_VERSION_INT
Describe the class of an AVClass context structure.
@ AV_PIX_FMT_YUYV422
packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
const char * av_default_item_name(void *ptr)
Return the context name.
static av_cold int init(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
#define FF_CODEC_CAP_SETS_FRAME_PROPS
Codec handles output frame properties internally instead of letting the internal logic derive them fr...
#define AV_OPT_FLAG_DECODING_PARAM
a generic parameter which can be set by the user for demuxing or decoding
const char * name
Name of the codec implementation.
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
#define FF_CODEC_RECEIVE_FRAME_CB(func)
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
static int crystalhd_receive_frame(AVCodecContext *avctx, AVFrame *frame)
static void flush(AVCodecContext *avctx)
#define AV_CODEC_CAP_AVOID_PROBING
Decoder is not a preferred choice for probing.
static av_cold int uninit(AVCodecContext *avctx)