FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Enumerations | 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 <libavformat/avformat.h>

Go to the source code of this file.

Enumerations

enum  { API_MODE_OLD = 0, API_MODE_NEW_API_REF_COUNT = 1, API_MODE_NEW_API_NO_REF_COUNT = 2 }
 

Functions

static int decode_packet (int *got_frame, int cached)
 
static int open_codec_context (int *stream_idx, 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 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_tvideo_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 AVPacket pkt
 
static int video_frame_count = 0
 
static int audio_frame_count = 0
 
static int api_mode = API_MODE_OLD
 

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.

Enumeration Type Documentation

anonymous enum
Enumerator:
API_MODE_OLD 
API_MODE_NEW_API_REF_COUNT 
API_MODE_NEW_API_NO_REF_COUNT 

Definition at line 60 of file demuxing_decoding.c.

Function Documentation

static int decode_packet ( int *  got_frame,
int  cached 
)
static
Examples:
demuxing_decoding.c.

Definition at line 68 of file demuxing_decoding.c.

Referenced by main().

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

Definition at line 138 of file demuxing_decoding.c.

Referenced by main().

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

Definition at line 178 of file demuxing_decoding.c.

Referenced by main().

int main ( int  argc,
char **  argv 
)

Definition at line 207 of file demuxing_decoding.c.

Variable Documentation

AVFormatContext* fmt_ctx = NULL
static
AVCodecContext* video_dec_ctx = NULL
static
Examples:
demuxing_decoding.c.

Definition at line 38 of file demuxing_decoding.c.

AVCodecContext * audio_dec_ctx
static
Examples:
demuxing_decoding.c.

Definition at line 38 of file demuxing_decoding.c.

Referenced by decode_packet(), and main().

AVStream* video_stream = NULL
static
Examples:
demuxing_decoding.c.

Definition at line 39 of file demuxing_decoding.c.

Referenced by event_loop(), and yop_read_header().

AVStream * audio_stream = NULL
static
Examples:
demuxing_decoding.c.

Definition at line 39 of file demuxing_decoding.c.

Referenced by event_loop(), main(), and yop_read_header().

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

Definition at line 40 of file demuxing_decoding.c.

Referenced by main(), and open_codec_context().

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

Definition at line 41 of file demuxing_decoding.c.

Referenced by main().

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

Definition at line 42 of file demuxing_decoding.c.

Referenced by main().

FILE* video_dst_file = NULL
static
Examples:
demuxing_decoding.c.

Definition at line 43 of file demuxing_decoding.c.

Referenced by decode_packet(), and main().

FILE* audio_dst_file = NULL
static
Examples:
demuxing_decoding.c.

Definition at line 44 of file demuxing_decoding.c.

Referenced by decode_packet(), and main().

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

Definition at line 46 of file demuxing_decoding.c.

Referenced by decode_packet(), and main().

int video_dst_linesize[4]
static
Examples:
demuxing_decoding.c.

Definition at line 47 of file demuxing_decoding.c.

Referenced by decode_packet(), and main().

int video_dst_bufsize
static
Examples:
demuxing_decoding.c.

Definition at line 48 of file demuxing_decoding.c.

Referenced by decode_packet(), and main().

int video_stream_idx = -1
static
Examples:
demuxing_decoding.c.

Definition at line 50 of file demuxing_decoding.c.

Referenced by decode_packet(), and main().

int audio_stream_idx = -1
static
Examples:
demuxing_decoding.c.

Definition at line 50 of file demuxing_decoding.c.

Referenced by decode_packet(), and main().

AVFrame* frame = NULL
static
Examples:
decoding_encoding.c, demuxing_decoding.c, filter_audio.c, filtering_audio.c, filtering_video.c, muxing.c, transcode_aac.c, and transcoding.c.

Definition at line 51 of file demuxing_decoding.c.

Referenced by a64multi_encode_frame(), ac3_decode_frame(), add_frame(), add_timecode_metadata(), add_to_queue(), adpcm_decode_frame(), adx_decode_frame(), alac_decode_frame(), alloc_audio_frame(), alloc_frame(), amrnb_decode_frame(), amrwb_decode_frame(), ape_decode_frame(), aqt_probe(), aqt_read_header(), atrac1_decode_frame(), atrac3_decode_frame(), atrac3p_decode_frame(), audio_encode_example(), aura_decode_frame(), av_frame_alloc(), avcodec_encode_audio(), avisynth_read_packet_video(), bfi_decode_frame(), bmv_aud_decode_frame(), cdg_decode_frame(), celt_decode_coarse_energy(), celt_decode_fine_energy(), channel_decorrelation(), cinaudio_decode_frame(), cmv_decode_frame(), cng_decode_frame(), compand_drain(), compand_nodelay(), cook_decode_frame(), copy_samples(), cpia_decode_frame(), cyuv_decode_frame(), dca_decode_frame(), decklink_write_video_packet(), decode_bdlt(), decode_bmv_frame(), decode_dds1(), decode_dsw1(), decode_entropy_coded_image(), decode_frame(), decode_tag(), decode_thread(), decode_tsw1(), decode_wdlt(), dfa_decode_frame(), dirac_decode_frame_internal(), dnxhd_decode_frame(), dpcm_decode_frame(), dv_write_packet(), dvvideo_encode_frame(), eightsvx_decode_frame(), encode_frame(), encode_residual_ch(), escape124_decode_frame(), evrc_decode_frame(), fdk_aac_decode_frame(), ff_celt_decode_frame(), ff_celt_flush(), ff_decklink_read_packet(), ff_default_get_audio_buffer(), ff_default_get_video_buffer(), ff_filter_frame_framed(), ff_framesync_get_frame(), ff_h264_fill_mbaff_ref_list(), ff_hevc_bump_frame(), ff_hevc_frame_rps(), ff_hevc_output_frame(), ff_ivi_decode_frame(), ff_load_image(), ff_mjpeg_decode_frame(), ff_twinvq_decode_frame(), filter_frame(), filter_frame_left(), filter_frame_right(), filter_slice_alpha(), filter_slice_chroma(), filter_slice_luma(), filter_slice_rgb(), flac_decode_frame(), framesync_inject_frame(), g722_decode_frame(), g723_1_decode_frame(), generate_missing_ref(), get_audio_frame(), get_buffer_internal(), get_pts(), get_video_buffer(), gsm_decode_frame(), hnm_decode_frame(), idcin_decode_frame(), ilbc_decode_frame(), imc_decode_frame(), init_frame(), init_slice_rpl(), ipvideo_decode_frame(), ipvideo_decode_opcodes(), join_request_frame(), jpeg2000_decode_frame(), lag_decode_frame(), lavfi_read_packet(), libcelt_dec_decode(), libgsm_decode_frame(), libopenjpeg_decode_frame(), libopus_decode(), libschroedinger_decode_frame(), libspeex_decode_frame(), mace_decode_frame(), main(), microdvd_read_header(), movie_push_frame(), mpc7_decode_frame(), mpc8_decode_frame(), mss2_decode_frame(), mv_read_packet(), mv_read_seek(), mxf_write_system_item(), oggvorbis_decode_frame(), on2avc_decode_frame(), opus_decode_packet(), output_frame_end(), pad_last_frame(), paf_audio_decode(), paf_video_decode(), parse_postfilter(), pcm_bluray_decode_frame(), pcm_decode_frame(), pcm_dvd_decode_frame(), pix_decode_frame(), push_frame(), qcelp_decode_frame(), qdm2_decode_frame(), ra144_decode_frame(), ra288_decode_frame(), raw_decode(), CustomSource::read(), read_interval_packets(), release_buffer(), request_frame(), rl2_decode_frame(), roq_encode_frame(), s302m_decode_frame(), decklink_output_callback::ScheduledFrameCompleted(), shorten_decode_frame(), silk_decode_frame(), sipr_decode_frame(), smka_decode_frame(), source_request_frame(), Stagefright_close(), Stagefright_decode_frame(), sub2video_get_blank_frame(), sub2video_push_ref(), sub2video_update(), swf_read_packet(), tak_decode_frame(), tgq_decode_frame(), tgv_decode_frame(), tmv_decode_frame(), truespeech_decode_frame(), try_decode_frame(), tta_decode_frame(), uninit(), unpack_frame(), v4l2_read_packet(), vda_h264_end_frame(), vda_old_h264_end_frame(), video_decode_example(), video_encode_example(), vmd_read_packet(), vmdaudio_decode_frame(), vmdvideo_decode_frame(), vorbis_decode_frame(), vp8_find_free_buffer(), vqa_decode_frame(), wavesynth_decode(), wavpack_decode_frame(), wma_decode_superframe(), worker(), write_audio_frame(), write_frame_header(), write_packet(), write_video_frame(), ws_snd_decode_frame(), xan_decode_frame(), xface_decode_frame(), and yop_decode_frame().

AVPacket pkt
static
Examples:
decoding_encoding.c, demuxing_decoding.c, muxing.c, and remuxing.c.

Definition at line 52 of file demuxing_decoding.c.

Referenced by add_to_pktbuf(), ape_tag_read_field(), asf_read_header(), asf_read_picture(), asf_read_pts(), audio_encode_example(), audio_write_frame(), av_dup_packet(), av_packet_merge_side_data(), av_write_trailer(), av_write_uncoded_frame_internal(), avcodec_encode_audio(), avcodec_encode_video(), avformat_find_stream_info(), avpacket_queue_flush(), avpacket_queue_put(), avpriv_mpegts_parse_packet(), decoder_decode_frame(), do_audio_out(), do_subtitle_out(), do_video_out(), encode_callback(), encode_frame(), estimate_timings_from_pts(), extract_mpeg4_header(), ff_init_buffer_info(), ff_interleave_add_packet(), ff_ivi_decode_frame(), ff_load_image(), ff_write_chained(), filter_frame(), filter_packet(), find_missing_packets(), flac_read_timestamp(), flush_encoders(), flush_packet(), free_pkt_fifo(), gen_buffer_time(), gen_bytes_read(), gen_check_bw(), gen_connect(), gen_create_stream(), gen_delete_stream(), gen_fcpublish_stream(), gen_fcsubscribe_stream(), gen_fcunpublish_stream(), gen_get_stream_length(), gen_pause(), gen_play(), gen_pong(), gen_publish(), gen_release_stream(), gen_seek(), gen_server_bw(), gen_swf_verification(), gxf_compare_field_nb(), http_prepare_data(), ipmovie_read_header(), mace_decode_frame(), main(), matroska_parse_frame(), matroska_parse_rm_audio(), matroska_parse_webvtt(), mkv_write_packet(), mov_create_chapter_track(), mov_create_timecode_track(), mov_read_covr(), movie_push_frame(), mpc_read_seek(), mpegts_get_dts(), mpegts_read_packet(), nsv_read_chunk(), opus_decode_packet(), packet_queue_flush(), packet_queue_put_nullpacket(), packet_queue_put_private(), parse_file(), process_callback(), process_input(), process_input_packet(), pulse_write_frame(), queue_frames(), read_connect(), read_interval_packets(), read_thread(), search_hi_lo_keyframes(), seek_frame_generic(), Stagefright_decode_frame(), str_read_packet(), supply_new_packets(), try_decode_frame(), video_encode_example(), decklink_input_callback::VideoInputFrameArrived(), vp8_lossy_decode_frame(), wavpack_encode_frame(), webm_clusters_start_with_keyframe(), worker(), write_audio_frame(), write_frame(), write_video_frame(), and wv_read_seek().

int video_frame_count = 0
static
Examples:
demuxing_decoding.c.

Definition at line 53 of file demuxing_decoding.c.

Referenced by decode_packet().

int audio_frame_count = 0
static
Examples:
demuxing_decoding.c.

Definition at line 54 of file demuxing_decoding.c.

Referenced by decode_packet(), and fourxm_read_packet().

int api_mode = API_MODE_OLD
static
Examples:
demuxing_decoding.c.

Definition at line 66 of file demuxing_decoding.c.

Referenced by decode_packet(), main(), and open_codec_context().