FFmpeg
Loading...
Searching...
No Matches
dvenc.c File Reference
#include <time.h>
#include "libavutil/time_internal.h"
#include "avformat.h"
#include "libavcodec/dv_profile.h"
#include "libavcodec/dv.h"
#include "dv.h"
#include "mux.h"
#include "libavutil/avassert.h"
#include "libavutil/fifo.h"
#include "libavutil/mathematics.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/pixdesc.h"
#include "libavutil/timecode.h"

Go to the source code of this file.

Data Structures

struct  DVMuxContext
 

Macros

#define MAX_AUDIO_FRAME_SIZE   192000
 

Functions

static void brktimegm (time_t secs, struct tm *tm)
 
static int dv_audio_frame_size (const AVDVProfile *sys, int frame, int sample_rate)
 
static int dv_write_pack (enum DVPackType pack_id, DVMuxContext *c, uint8_t *buf, int channel, int seq)
 
static void dv_inject_audio (DVMuxContext *c, int channel, uint8_t *frame_ptr)
 
static void dv_inject_metadata (DVMuxContext *c, uint8_t *frame)
 
static int dv_assemble_frame (AVFormatContext *s, DVMuxContext *c, AVStream *st, const uint8_t *data, int data_size, uint8_t **frame)
 
static int dv_init_mux (AVFormatContext *s)
 
static int dv_write_header (AVFormatContext *s)
 
static int dv_write_packet (struct AVFormatContext *s, AVPacket *pkt)
 
static void dv_deinit (AVFormatContext *s)
 

Variables

static const int dv_aaux_packs_dist [12][9]
 
const FFOutputFormat ff_dv_muxer
 

Macro Definition Documentation

◆ MAX_AUDIO_FRAME_SIZE

#define MAX_AUDIO_FRAME_SIZE   192000

Definition at line 45 of file dvenc.c.

Referenced by dv_init_mux().

Function Documentation

◆ brktimegm()

static void brktimegm ( time_t secs,
struct tm * tm )
static

Definition at line 76 of file dvenc.c.

Referenced by dv_write_pack().

◆ dv_audio_frame_size()

static int dv_audio_frame_size ( const AVDVProfile * sys,
int frame,
int sample_rate )
static

Definition at line 84 of file dvenc.c.

Referenced by dv_assemble_frame(), dv_inject_audio(), and dv_write_pack().

◆ dv_write_pack()

static int dv_write_pack ( enum DVPackType pack_id,
DVMuxContext * c,
uint8_t * buf,
int channel,
int seq )
static

Definition at line 98 of file dvenc.c.

◆ dv_inject_audio()

static void dv_inject_audio ( DVMuxContext * c,
int channel,
uint8_t * frame_ptr )
static

Definition at line 190 of file dvenc.c.

Referenced by dv_assemble_frame().

◆ dv_inject_metadata()

static void dv_inject_metadata ( DVMuxContext * c,
uint8_t * frame )
static

Definition at line 213 of file dvenc.c.

Referenced by dv_assemble_frame().

◆ dv_assemble_frame()

static int dv_assemble_frame ( AVFormatContext * s,
DVMuxContext * c,
AVStream * st,
const uint8_t * data,
int data_size,
uint8_t ** frame )
static

Definition at line 247 of file dvenc.c.

Referenced by dv_write_packet().

◆ dv_init_mux()

static int dv_init_mux ( AVFormatContext * s)
static

Definition at line 312 of file dvenc.c.

Referenced by dv_write_header().

◆ dv_write_header()

static int dv_write_header ( AVFormatContext * s)
static

Definition at line 433 of file dvenc.c.

◆ dv_write_packet()

static int dv_write_packet ( struct AVFormatContext * s,
AVPacket * pkt )
static

Definition at line 461 of file dvenc.c.

◆ dv_deinit()

static void dv_deinit ( AVFormatContext * s)
static

Definition at line 481 of file dvenc.c.

Variable Documentation

◆ dv_aaux_packs_dist

const int dv_aaux_packs_dist[12][9]
static
Initial value:
= {
{ 0xff, 0xff, 0xff, 0x50, 0x51, 0x52, 0x53, 0xff, 0xff },
{ 0x50, 0x51, 0x52, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff },
{ 0xff, 0xff, 0xff, 0x50, 0x51, 0x52, 0x53, 0xff, 0xff },
{ 0x50, 0x51, 0x52, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff },
{ 0xff, 0xff, 0xff, 0x50, 0x51, 0x52, 0x53, 0xff, 0xff },
{ 0x50, 0x51, 0x52, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff },
{ 0xff, 0xff, 0xff, 0x50, 0x51, 0x52, 0x53, 0xff, 0xff },
{ 0x50, 0x51, 0x52, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff },
{ 0xff, 0xff, 0xff, 0x50, 0x51, 0x52, 0x53, 0xff, 0xff },
{ 0x50, 0x51, 0x52, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff },
{ 0xff, 0xff, 0xff, 0x50, 0x51, 0x52, 0x53, 0xff, 0xff },
{ 0x50, 0x51, 0x52, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff },
}

Definition at line 61 of file dvenc.c.

Referenced by dv_inject_audio().

◆ ff_dv_muxer

const FFOutputFormat ff_dv_muxer
Initial value:
= {
.p.name = "dv",
.p.long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
.p.extensions = "dv",
.priv_data_size = sizeof(DVMuxContext),
.p.audio_codec = AV_CODEC_ID_PCM_S16LE,
.p.video_codec = AV_CODEC_ID_DVVIDEO,
.write_header = dv_write_header,
.write_packet = dv_write_packet,
.deinit = dv_deinit,
}
@ AV_CODEC_ID_PCM_S16LE
Definition codec_id.h:330
@ AV_CODEC_ID_DVVIDEO
Definition codec_id.h:74
static int dv_write_header(AVFormatContext *s)
Definition dvenc.c:433
static void dv_deinit(AVFormatContext *s)
Definition dvenc.c:481
static int dv_write_packet(struct AVFormatContext *s, AVPacket *pkt)
Definition dvenc.c:461
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition internal.h:88
#define FF_OFMT_FLAG_ONLY_DEFAULT_CODECS
If this flag is set, then the only permitted audio/video/subtitle codec ids are AVOutputFormat....
Definition mux.h:59

Definition at line 489 of file dvenc.c.