FFmpeg
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
src_movie.c File Reference

movie video source More...

#include <float.h>
#include "libavutil/avstring.h"
#include "libavutil/avassert.h"
#include "libavutil/opt.h"
#include "libavutil/imgutils.h"
#include "libavutil/timestamp.h"
#include "libavformat/avformat.h"
#include "audio.h"
#include "avcodec.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"

Go to the source code of this file.

Data Structures

struct  MovieStream
 
struct  MovieContext
 

Macros

#define OFFSET(x)   offsetof(MovieContext, x)
 
#define F   AV_OPT_FLAG_FILTERING_PARAM
 
#define describe_bufref(buf, link)   describe_bufref_to_str((char[1024]){0}, 1024, buf, link)
 

Functions

static int movie_config_output_props (AVFilterLink *outlink)
 
static int movie_request_frame (AVFilterLink *outlink)
 
static AVStreamfind_stream (void *log, AVFormatContext *avf, const char *spec)
 
static int open_stream (void *log, MovieStream *st)
 
static int guess_channel_layout (MovieStream *st, int st_index, void *log_ctx)
 
static av_cold int movie_common_init (AVFilterContext *ctx, const char *args, const AVClass *class)
 
static av_cold void movie_uninit (AVFilterContext *ctx)
 
static int movie_query_formats (AVFilterContext *ctx)
 
static AVFilterBufferRefframe_to_buf (enum AVMediaType type, AVFrame *frame, AVFilterLink *outlink)
 
static char * describe_bufref_to_str (char *dst, size_t dst_size, AVFilterBufferRef *buf, AVFilterLink *link)
 
static int rewind_file (AVFilterContext *ctx)
 
static int movie_push_frame (AVFilterContext *ctx, unsigned out_id)
 Try to push a frame to the requested output.
 

Variables

static const AVOption movie_options []
 

Detailed Description

movie video source

Todo:

use direct rendering (no allocation of a new frame)

support a PTS correction mechanism

Definition in file src_movie.c.

Macro Definition Documentation

#define OFFSET (   x)    offsetof(MovieContext, x)

Definition at line 72 of file src_movie.c.

Definition at line 73 of file src_movie.c.

#define describe_bufref (   buf,
  link 
)    describe_bufref_to_str((char[1024]){0}, 1024, buf, link)

Definition at line 448 of file src_movie.c.

Referenced by movie_push_frame().

Function Documentation

static int movie_config_output_props ( AVFilterLink outlink)
static

Definition at line 379 of file src_movie.c.

Referenced by movie_common_init().

static int movie_request_frame ( AVFilterLink outlink)
static

Definition at line 584 of file src_movie.c.

Referenced by movie_common_init().

static AVStream* find_stream ( void log,
AVFormatContext avf,
const char *  spec 
)
static

Definition at line 91 of file src_movie.c.

Referenced by movie_common_init().

static int open_stream ( void log,
MovieStream st 
)
static

Definition at line 145 of file src_movie.c.

Referenced by movie_common_init().

static int guess_channel_layout ( MovieStream st,
int  st_index,
void log_ctx 
)
static

Definition at line 164 of file src_movie.c.

Referenced by movie_common_init().

static av_cold int movie_common_init ( AVFilterContext ctx,
const char *  args,
const AVClass class 
)
static

Definition at line 187 of file src_movie.c.

static av_cold void movie_uninit ( AVFilterContext ctx)
static

Definition at line 328 of file src_movie.c.

static int movie_query_formats ( AVFilterContext ctx)
static

Definition at line 347 of file src_movie.c.

static AVFilterBufferRef* frame_to_buf ( enum AVMediaType  type,
AVFrame frame,
AVFilterLink outlink 
)
static

Definition at line 402 of file src_movie.c.

Referenced by movie_push_frame().

static char* describe_bufref_to_str ( char *  dst,
size_t  dst_size,
AVFilterBufferRef buf,
AVFilterLink link 
)
static

Definition at line 422 of file src_movie.c.

static int rewind_file ( AVFilterContext ctx)
static

Definition at line 451 of file src_movie.c.

Referenced by movie_push_frame().

static int movie_push_frame ( AVFilterContext ctx,
unsigned  out_id 
)
static

Try to push a frame to the requested output.

Parameters
ctxfilter context
out_idnumber of output where a frame is wanted; if the frame is read from file, used to set the return value; if the codec is being flushed, flush the corresponding stream
Returns
1 if a frame was pushed on the requested output, 0 if another attempt is possible, <0 AVERROR code

Definition at line 485 of file src_movie.c.

Referenced by movie_request_frame().

Variable Documentation

const AVOption movie_options[]
static
Initial value:
= {
{"format_name", "set format name", OFFSET(format_name), AV_OPT_TYPE_STRING, {.str = 0}, CHAR_MIN, CHAR_MAX, F },
{"f", "set format name", OFFSET(format_name), AV_OPT_TYPE_STRING, {.str = 0}, CHAR_MIN, CHAR_MAX, F },
{"streams", "set streams", OFFSET(stream_specs), AV_OPT_TYPE_STRING, {.str = 0}, CHAR_MAX, CHAR_MAX, F },
{"s", "set streams", OFFSET(stream_specs), AV_OPT_TYPE_STRING, {.str = 0}, CHAR_MAX, CHAR_MAX, F },
{"si", "set stream index", OFFSET(stream_index), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, F },
{"stream_index", "set stream index", OFFSET(stream_index), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, F },
{"seek_point", "set seekpoint (seconds)", OFFSET(seek_point_d), AV_OPT_TYPE_DOUBLE, {.dbl = 0}, 0, (INT64_MAX-1) / 1000000, F },
{"sp", "set seekpoint (seconds)", OFFSET(seek_point_d), AV_OPT_TYPE_DOUBLE, {.dbl = 0}, 0, (INT64_MAX-1) / 1000000, F },
{"loop", "set loop count", OFFSET(loop_count), AV_OPT_TYPE_INT, {.i64 = 1}, 0, INT_MAX, F },
{NULL},
}

Definition at line 75 of file src_movie.c.