FFmpeg
|
PGS subtitle decoder. More...
#include "avcodec.h"
#include "dsputil.h"
#include "bytestream.h"
#include "libavutil/colorspace.h"
#include "libavutil/imgutils.h"
#include "libavutil/opt.h"
Go to the source code of this file.
Data Structures | |
struct | PGSSubPictureReference |
struct | PGSSubPresentation |
struct | PGSSubPicture |
struct | PGSSubContext |
Macros | |
#define | RGBA(r, g, b, a) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)) |
#define | OFFSET(x) offsetof(PGSSubContext, x) |
#define | SD AV_OPT_FLAG_SUBTITLE_PARAM | AV_OPT_FLAG_DECODING_PARAM |
Typedefs | |
typedef struct PGSSubPictureReference | PGSSubPictureReference |
typedef struct PGSSubPresentation | PGSSubPresentation |
typedef struct PGSSubPicture | PGSSubPicture |
typedef struct PGSSubContext | PGSSubContext |
Enumerations | |
enum | SegmentType { PALETTE_SEGMENT = 0x14, PICTURE_SEGMENT = 0x15, PRESENTATION_SEGMENT = 0x16, WINDOW_SEGMENT = 0x17, DISPLAY_SEGMENT = 0x80 } |
Functions | |
static av_cold int | init_decoder (AVCodecContext *avctx) |
static av_cold int | close_decoder (AVCodecContext *avctx) |
static int | decode_rle (AVCodecContext *avctx, AVSubtitle *sub, int rect, const uint8_t *buf, unsigned int buf_size) |
Decode the RLE data. More... | |
static int | parse_picture_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size) |
Parse the picture segment packet. More... | |
static void | parse_palette_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size) |
Parse the palette segment packet. More... | |
static void | parse_presentation_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size, int64_t pts) |
Parse the presentation segment packet. More... | |
static int | display_end_segment (AVCodecContext *avctx, void *data, const uint8_t *buf, int buf_size) |
Parse the display segment packet. More... | |
static int | decode (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt) |
Variables | |
static const AVOption | options [] |
static const AVClass | pgsdec_class |
AVCodec | ff_pgssub_decoder |
Detailed Description
PGS subtitle decoder.
Definition in file pgssubdec.c.
Macro Definition Documentation
#define OFFSET | ( | x | ) | offsetof(PGSSubContext, x) |
Definition at line 525 of file pgssubdec.c.
Definition at line 34 of file pgssubdec.c.
Referenced by parse_palette_segment().
#define SD AV_OPT_FLAG_SUBTITLE_PARAM | AV_OPT_FLAG_DECODING_PARAM |
Definition at line 526 of file pgssubdec.c.
Typedef Documentation
typedef struct PGSSubContext PGSSubContext |
typedef struct PGSSubPicture PGSSubPicture |
typedef struct PGSSubPictureReference PGSSubPictureReference |
typedef struct PGSSubPresentation PGSSubPresentation |
Enumeration Type Documentation
enum SegmentType |
Enumerator | |
---|---|
PALETTE_SEGMENT | |
PICTURE_SEGMENT | |
PRESENTATION_SEGMENT | |
WINDOW_SEGMENT | |
DISPLAY_SEGMENT |
Definition at line 36 of file pgssubdec.c.
Function Documentation
|
static |
Definition at line 81 of file pgssubdec.c.
|
static |
Definition at line 449 of file pgssubdec.c.
|
static |
Decode the RLE data.
The subtitle is stored as an Run Length Encoded image.
- Parameters
-
avctx contains the current codec context sub pointer to the processed subtitle data buf pointer to the RLE data to process buf_size size of the RLE data to process
Definition at line 108 of file pgssubdec.c.
Referenced by display_end_segment().
|
static |
Parse the display segment packet.
The display segment controls the updating of the display.
- Parameters
-
avctx contains the current codec context data pointer to the data pertaining the subtitle to display buf pointer to the packet to process buf_size size of packet to process
- Todo:
TODO: Fix start time, relies on correct PTS, currently too late
segment, which is currently ignored as it clears
the subtitle too early.
- Todo:
- TODO: Fix end time, normally cleared by a second display
Definition at line 385 of file pgssubdec.c.
Referenced by decode().
|
static |
Definition at line 74 of file pgssubdec.c.
|
static |
Parse the palette segment packet.
The palette segment contains details of the palette, a maximum of 256 colors can be defined.
- Parameters
-
avctx contains the current codec context buf pointer to the packet to process buf_size size of packet to process
Definition at line 255 of file pgssubdec.c.
Referenced by decode().
|
static |
Parse the picture segment packet.
The picture segment contains details on the sequence id, width, height and Run Length Encoded (RLE) bitmap data.
- Parameters
-
avctx contains the current codec context buf pointer to the packet to process buf_size size of packet to process
- Todo:
- TODO: Enable support for RLE data over multiple packets
Definition at line 175 of file pgssubdec.c.
Referenced by decode().
|
static |
Parse the presentation segment packet.
The presentation segment contains details on the video width, video height, x & y subtitle position.
- Parameters
-
avctx contains the current codec context buf pointer to the packet to process buf_size size of packet to process
- Todo:
- TODO: Implement cropping
Definition at line 297 of file pgssubdec.c.
Referenced by decode().
Variable Documentation
AVCodec ff_pgssub_decoder |
Definition at line 539 of file pgssubdec.c.
|
static |
Definition at line 527 of file pgssubdec.c.
|
static |
Definition at line 532 of file pgssubdec.c.
Generated on Mon Nov 18 2024 06:52:08 for FFmpeg by 1.8.11