FFmpeg
|
PGS subtitle decoder. More...
#include "avcodec.h"
#include "dsputil.h"
#include "bytestream.h"
#include "internal.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 |
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. | |
static int | parse_picture_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size) |
Parse the picture segment packet. | |
static void | parse_palette_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size) |
Parse the palette segment packet. | |
static int | parse_presentation_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size, int64_t pts) |
Parse the presentation segment packet. | |
static int | display_end_segment (AVCodecContext *avctx, void *data, const uint8_t *buf, int buf_size) |
Parse the display segment packet. | |
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 |
PGS subtitle decoder.
Definition in file pgssubdec.c.
Definition at line 36 of file pgssubdec.c.
Referenced by parse_palette_segment().
#define OFFSET | ( | x | ) | offsetof(PGSSubContext, x) |
Definition at line 533 of file pgssubdec.c.
#define SD AV_OPT_FLAG_SUBTITLE_PARAM | AV_OPT_FLAG_DECODING_PARAM |
Definition at line 534 of file pgssubdec.c.
enum SegmentType |
Definition at line 38 of file pgssubdec.c.
|
static |
Definition at line 76 of file pgssubdec.c.
|
static |
Definition at line 83 of file pgssubdec.c.
|
static |
Decode the RLE data.
The subtitle is stored as a Run Length Encoded image.
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 110 of file pgssubdec.c.
Referenced by display_end_segment().
|
static |
Parse the picture segment packet.
The picture segment contains details on the sequence id, width, height and Run Length Encoded (RLE) bitmap data.
avctx | contains the current codec context |
buf | pointer to the packet to process |
buf_size | size of packet to process |
Definition at line 177 of file pgssubdec.c.
Referenced by decode().
|
static |
Parse the palette segment packet.
The palette segment contains details of the palette, a maximum of 256 colors can be defined.
avctx | contains the current codec context |
buf | pointer to the packet to process |
buf_size | size of packet to process |
Definition at line 257 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.
avctx | contains the current codec context |
buf | pointer to the packet to process |
buf_size | size of packet to process |
Definition at line 299 of file pgssubdec.c.
Referenced by decode().
|
static |
Parse the display segment packet.
The display segment controls the updating of the display.
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: Fix start time, relies on correct PTS, currently too late
segment, which is currently ignored as it clears
the subtitle too early.
Definition at line 391 of file pgssubdec.c.
Referenced by decode().
|
static |
Definition at line 455 of file pgssubdec.c.
|
static |
Definition at line 535 of file pgssubdec.c.
|
static |
Definition at line 540 of file pgssubdec.c.
AVCodec ff_pgssub_decoder |
Definition at line 547 of file pgssubdec.c.