#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 "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 69 of file crystalhd.c.
 
 
◆ TIMESTAMP_UNIT
      
        
          | #define TIMESTAMP_UNIT   100000 | 
        
      
 
Step between fake timestamps passed to hardware in units of 100ns. 
Definition at line 71 of file crystalhd.c.
 
 
◆ DEFINE_CRYSTALHD_DECODER
      
        
          | #define DEFINE_CRYSTALHD_DECODER | 
          ( | 
            | 
          x,  | 
        
        
           | 
           | 
            | 
          X,  | 
        
        
           | 
           | 
            | 
          bsf_name  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Value:    static const AVClass x##_crystalhd_class = { \
 
    }; \
    AVCodec ff_##x##_crystalhd_decoder = { \
        .name           = #x "_crystalhd", \
        .id             = AV_CODEC_ID_##X, \
        .priv_class     = &x##_crystalhd_class, \
        .bsfs           = bsf_name, \
        .wrapper_name   = "crystalhd", \
    };
 
Definition at line 770 of file crystalhd.c.
 
 
◆ CopyRet
| Enumerator | 
|---|
| RET_ERROR  |  | 
| RET_OK  |  | 
| RET_COPY_AGAIN  |  | 
Definition at line 78 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 106 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.
 
static enum AVPixelFormat pix_fmts[]
 
#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
 
static CopyRet receive_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame)
 
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 AV_OPT_FLAG_DECODING_PARAM
a generic parameter which can be set by the user for demuxing or decoding
 
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 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)