FFmpeg 5.1.4
Functions | Variables
demuxing_decoding.c File Reference

Demuxing and decoding example. More...

#include <libavutil/imgutils.h>
#include <libavutil/samplefmt.h>
#include <libavutil/timestamp.h>
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>

Go to the source code of this file.

Functions

static int output_video_frame (AVFrame *frame)
 
static int output_audio_frame (AVFrame *frame)
 
static int decode_packet (AVCodecContext *dec, const AVPacket *pkt)
 
static int open_codec_context (int *stream_idx, AVCodecContext **dec_ctx, AVFormatContext *fmt_ctx, enum AVMediaType type)
 
static int get_format_from_sample_fmt (const char **fmt, enum AVSampleFormat sample_fmt)
 
int main (int argc, char **argv)
 

Variables

static AVFormatContextfmt_ctx = NULL
 
static AVCodecContextvideo_dec_ctx = NULL
 
static AVCodecContextaudio_dec_ctx
 
static int width
 
static int height
 
static enum AVPixelFormat pix_fmt
 
static AVStreamvideo_stream = NULL
 
static AVStreamaudio_stream = NULL
 
static const char * src_filename = NULL
 
static const char * video_dst_filename = NULL
 
static const char * audio_dst_filename = NULL
 
static FILE * video_dst_file = NULL
 
static FILE * audio_dst_file = NULL
 
static uint8_t * video_dst_data [4] = {NULL}
 
static int video_dst_linesize [4]
 
static int video_dst_bufsize
 
static int video_stream_idx = -1
 
static int audio_stream_idx = -1
 
static AVFrameframe = NULL
 
static AVPacketpkt = NULL
 
static int video_frame_count = 0
 
static int audio_frame_count = 0
 

Detailed Description

Demuxing and decoding example.

Show how to use the libavformat and libavcodec API to demux and decode audio and video data.

Definition in file demuxing_decoding.c.

Function Documentation

◆ output_video_frame()

static int output_video_frame ( AVFrame frame)
static
Examples
demuxing_decoding.c.

Definition at line 59 of file demuxing_decoding.c.

Referenced by decode_packet().

◆ output_audio_frame()

static int output_audio_frame ( AVFrame frame)
static
Examples
demuxing_decoding.c.

Definition at line 90 of file demuxing_decoding.c.

Referenced by decode_packet().

◆ decode_packet()

static int decode_packet ( AVCodecContext dec,
const AVPacket pkt 
)
static
Examples
demuxing_decoding.c.

Definition at line 110 of file demuxing_decoding.c.

Referenced by main().

◆ open_codec_context()

static int open_codec_context ( int *  stream_idx,
AVCodecContext **  dec_ctx,
AVFormatContext fmt_ctx,
enum AVMediaType  type 
)
static
Examples
demuxing_decoding.c.

Definition at line 148 of file demuxing_decoding.c.

Referenced by main().

◆ get_format_from_sample_fmt()

static int get_format_from_sample_fmt ( const char **  fmt,
enum AVSampleFormat  sample_fmt 
)
static
Examples
demuxing_decoding.c.

Definition at line 199 of file demuxing_decoding.c.

Referenced by main().

◆ main()

int main ( int  argc,
char **  argv 
)
Examples
demuxing_decoding.c.

Definition at line 228 of file demuxing_decoding.c.

Variable Documentation

◆ fmt_ctx

AVFormatContext* fmt_ctx = NULL
static

◆ video_dec_ctx

AVCodecContext* video_dec_ctx = NULL
static
Examples
demuxing_decoding.c.

Definition at line 39 of file demuxing_decoding.c.

Referenced by main().

◆ audio_dec_ctx

AVCodecContext * audio_dec_ctx
static
Examples
demuxing_decoding.c.

Definition at line 39 of file demuxing_decoding.c.

Referenced by main(), and output_audio_frame().

◆ width

int width
static

◆ height

int height
static

◆ pix_fmt

enum AVPixelFormat pix_fmt
static
Examples
demuxing_decoding.c, and muxing.c.

Definition at line 41 of file demuxing_decoding.c.

Referenced by alloc_picture(), main(), and output_video_frame().

◆ video_stream

AVStream* video_stream = NULL
static
Examples
demuxing_decoding.c, and hw_decode.c.

Definition at line 42 of file demuxing_decoding.c.

Referenced by main().

◆ audio_stream

AVStream * audio_stream = NULL
static
Examples
demuxing_decoding.c.

Definition at line 42 of file demuxing_decoding.c.

Referenced by main().

◆ src_filename

const char* src_filename = NULL
static
Examples
demuxing_decoding.c.

Definition at line 43 of file demuxing_decoding.c.

Referenced by main(), and open_codec_context().

◆ video_dst_filename

const char* video_dst_filename = NULL
static
Examples
demuxing_decoding.c.

Definition at line 44 of file demuxing_decoding.c.

Referenced by main().

◆ audio_dst_filename

const char* audio_dst_filename = NULL
static
Examples
demuxing_decoding.c.

Definition at line 45 of file demuxing_decoding.c.

Referenced by main().

◆ video_dst_file

FILE* video_dst_file = NULL
static
Examples
demuxing_decoding.c.

Definition at line 46 of file demuxing_decoding.c.

Referenced by main(), and output_video_frame().

◆ audio_dst_file

FILE* audio_dst_file = NULL
static
Examples
demuxing_decoding.c.

Definition at line 47 of file demuxing_decoding.c.

Referenced by main(), and output_audio_frame().

◆ video_dst_data

uint8_t* video_dst_data[4] = {NULL}
static
Examples
demuxing_decoding.c.

Definition at line 49 of file demuxing_decoding.c.

Referenced by main(), and output_video_frame().

◆ video_dst_linesize

int video_dst_linesize[4]
static
Examples
demuxing_decoding.c.

Definition at line 50 of file demuxing_decoding.c.

Referenced by main(), and output_video_frame().

◆ video_dst_bufsize

int video_dst_bufsize
static
Examples
demuxing_decoding.c.

Definition at line 51 of file demuxing_decoding.c.

Referenced by main(), and output_video_frame().

◆ video_stream_idx

int video_stream_idx = -1
static
Examples
demuxing_decoding.c.

Definition at line 53 of file demuxing_decoding.c.

Referenced by main().

◆ audio_stream_idx

int audio_stream_idx = -1
static
Examples
demuxing_decoding.c.

Definition at line 53 of file demuxing_decoding.c.

Referenced by main().

◆ frame

AVFrame* frame = NULL
static

◆ pkt

AVPacket* pkt = NULL
static

◆ video_frame_count

int video_frame_count = 0
static
Examples
demuxing_decoding.c.

Definition at line 56 of file demuxing_decoding.c.

Referenced by output_video_frame().

◆ audio_frame_count

int audio_frame_count = 0
static
Examples
demuxing_decoding.c.

Definition at line 57 of file demuxing_decoding.c.

Referenced by output_audio_frame().