Mercurial > libavformat.hg
view framehook.h @ 452:11d07f14b077 libavformat
mpeg SVCD compatibility, SCR fixes, standard compliance
- fixed VBR+constrained bitstream header flags for non-VCD
- more sane (and SVCD compatible) value for video stream->max_buffer_size
- always write at least one PES header stuffing byte for MPEG-2 to
prevent accidental start code generation
- do not write more than 16 stuffing bytes in a PES header (not
allowed). Use padding packets instead.
- include a PES extension in the first MPEG-2 packet
- fill the first pack of SVCD files with padding
- "sanity hack" that prevents the SCR from overtaking the PTS for non-VCD
- fixed VCD PTS values to correspond to the SCR
- always include DTS in the first SVCD packet (fixes lots of
compatibility problems with DVD players)
patch by (Hauke Duden <H.NS.Duden at gmx dot net>)
author | michael |
---|---|
date | Mon, 26 Apr 2004 22:16:06 +0000 |
parents | 96f8086bc2ba |
children | da1d5db0ce5c |
line wrap: on
line source
#ifndef _FRAMEHOOK_H #define _FRAMEHOOK_H /* * Prototypes for interface to .so that implement a video processing hook */ #include "avcodec.h" /* Function must be called 'Configure' */ typedef int (FrameHookConfigure)(void **ctxp, int argc, char *argv[]); typedef FrameHookConfigure *FrameHookConfigureFn; extern FrameHookConfigure Configure; /* Function must be called 'Process' */ typedef void (FrameHookProcess)(void *ctx, struct AVPicture *pict, enum PixelFormat pix_fmt, int width, int height, int64_t pts); typedef FrameHookProcess *FrameHookProcessFn; extern FrameHookProcess Process; /* Function must be called 'Release' */ typedef void (FrameHookRelease)(void *ctx); typedef FrameHookRelease *FrameHookReleaseFn; extern FrameHookRelease Release; extern int frame_hook_add(int argc, char *argv[]); extern void frame_hook_process(struct AVPicture *pict, enum PixelFormat pix_fmt, int width, int height); extern void frame_hook_release(void); #endif