FFmpeg
|
Interface to xvidcore for MPEG-4 compliant encoding. More...
#include <xvid.h>
#include <unistd.h>
#include "avcodec.h"
#include "internal.h"
#include "libavutil/file.h"
#include "libavutil/cpu.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h"
#include "libxvid.h"
#include "mpegvideo.h"
Go to the source code of this file.
Data Structures | |
struct | xvid_context |
Structure for the private Xvid context. More... | |
struct | xvid_ff_pass1 |
Structure for the private first-pass plugin. More... | |
Macros | |
#define | BUFFER_SIZE 1024 |
Buffer management macros. More... | |
#define | BUFFER_REMAINING(x) (BUFFER_SIZE - strlen(x)) |
#define | BUFFER_CAT(x) (&((x)[strlen(x)])) |
Functions | |
static int | xvid_encode_close (AVCodecContext *avctx) |
static int | xvid_ff_2pass_create (xvid_plg_create_t *param, void **handle) |
Initialize the two-pass plugin and context. More... | |
static int | xvid_ff_2pass_destroy (struct xvid_context *ref, xvid_plg_destroy_t *param) |
Destroy the two-pass plugin context. More... | |
static int | xvid_ff_2pass_before (struct xvid_context *ref, xvid_plg_data_t *param) |
Enable fast encode mode during the first pass. More... | |
static int | xvid_ff_2pass_after (struct xvid_context *ref, xvid_plg_data_t *param) |
Capture statistic data and write it during first pass. More... | |
static int | xvid_ff_2pass (void *ref, int cmd, void *p1, void *p2) |
Dispatch function for our custom plugin. More... | |
static int | xvid_strip_vol_header (AVCodecContext *avctx, AVPacket *pkt, unsigned int header_len, unsigned int frame_len) |
Routine to create a global VO/VOL header for MP4 container. More... | |
static void | xvid_correct_framerate (AVCodecContext *avctx) |
Routine to correct a possibly erroneous framerate being fed to us. More... | |
static av_cold int | xvid_encode_init (AVCodecContext *avctx) |
static int | xvid_encode_frame (AVCodecContext *avctx, AVPacket *pkt, const AVFrame *picture, int *got_packet) |
Variables | |
AVCodec | ff_libxvid_encoder |
Detailed Description
Interface to xvidcore for MPEG-4 compliant encoding.
Definition in file libxvid.c.
Macro Definition Documentation
Definition at line 44 of file libxvid.c.
Referenced by xvid_ff_2pass_after(), and xvid_ff_2pass_create().
#define BUFFER_REMAINING | ( | x | ) | (BUFFER_SIZE - strlen(x)) |
Definition at line 43 of file libxvid.c.
Referenced by xvid_ff_2pass_after(), and xvid_ff_2pass_create().
#define BUFFER_SIZE 1024 |
Buffer management macros.
Definition at line 42 of file libxvid.c.
Referenced by xvid_encode_init().
Function Documentation
|
static |
Routine to correct a possibly erroneous framerate being fed to us.
Xvid currently chokes on framerates where the ticks per frame is extremely large. This function works to correct problems in this area by estimating a new framerate and taking the simpler fraction of the two presented.
- Parameters
-
avctx Context that contains the framerate to correct.
Definition at line 298 of file libxvid.c.
Referenced by xvid_encode_init().
|
static |
Definition at line 740 of file libxvid.c.
Referenced by xvid_encode_init().
|
static |
|
static |
Dispatch function for our custom plugin.
This handles the dispatch for the Xvid plugin. It passes data on to other functions for actual processing.
- Parameters
-
ref Context pointer for the plugin cmd The task given for us to complete p1 First parameter (varies) p2 Second parameter (varies)
- Returns
- Returns XVID_ERR_xxxx on failure, or 0 on success
Definition at line 221 of file libxvid.c.
Referenced by xvid_encode_init().
|
static |
Capture statistic data and write it during first pass.
- Parameters
-
ref Context pointer for the plugin param Statistic data
- Returns
- Returns XVID_ERR_xxxx on failure, or 0 on success
Definition at line 185 of file libxvid.c.
Referenced by xvid_ff_2pass().
|
static |
Enable fast encode mode during the first pass.
- Returns
- Returns 0, success guaranteed
Definition at line 142 of file libxvid.c.
Referenced by xvid_ff_2pass().
|
static |
Initialize the two-pass plugin and context.
- Parameters
-
param Input construction parameter structure handle Private context handle
- Returns
- Returns XVID_ERR_xxxx on failure, or 0 on success.
Definition at line 95 of file libxvid.c.
Referenced by xvid_ff_2pass().
|
static |
Destroy the two-pass plugin context.
- Parameters
-
ref Context pointer for the plugin param Destrooy context
- Returns
- Returns 0, success guaranteed
Definition at line 126 of file libxvid.c.
Referenced by xvid_ff_2pass().
|
static |
Routine to create a global VO/VOL header for MP4 container.
What we do here is extract the header from the Xvid bitstream as it is encoded. We also strip the repeated headers from the bitstream when a global header is requested for MPEG-4 ISO compliance.
- Parameters
-
avctx AVCodecContext pointer to context frame Pointer to encoded frame data header_len Length of header to search frame_len Length of encoded frame data
- Returns
- Returns new length of frame data
Definition at line 258 of file libxvid.c.
Referenced by xvid_encode_frame().
Variable Documentation
AVCodec ff_libxvid_encoder |
Generated on Mon Nov 18 2024 06:52:07 for FFmpeg by 1.8.11