Commit 4627a56d authored by Kirill Savkov's avatar Kirill Savkov Committed by Marton Balint

avcodec/libzvbi-teletextdec: add option to set default G0 character set

Signed-off-by: 's avatarKirill Savkov <k.savkov@inventos.ru>
Signed-off-by: 's avatarMarton Balint <cus@passwd.hu>
parent 45085d8d
...@@ -316,6 +316,11 @@ List of teletext page numbers to decode. Pages that do not match the specified ...@@ -316,6 +316,11 @@ List of teletext page numbers to decode. Pages that do not match the specified
list are dropped. You may use the special @code{*} string to match all pages, list are dropped. You may use the special @code{*} string to match all pages,
or @code{subtitle} to match all subtitle pages. or @code{subtitle} to match all subtitle pages.
Default value is *. Default value is *.
@item txt_default_region
Set default G0 character set used for decoding, a value between 0 and 80 (see
ETS 300 706, Section 15, Table 32). Default value is -1, which does not
override the libzvbi default. This option is needed for some legacy level 1.0
transmissions which cannot signal the proper charset.
@item txt_chop_top @item txt_chop_top
Discards the top teletext line. Default value is 1. Discards the top teletext line. Default value is 1.
@item txt_format @item txt_format
......
...@@ -55,6 +55,7 @@ typedef struct TeletextContext ...@@ -55,6 +55,7 @@ typedef struct TeletextContext
{ {
AVClass *class; AVClass *class;
char *pgno; char *pgno;
int default_region;
int x_offset; int x_offset;
int y_offset; int y_offset;
int format_id; /* 0 = bitmap, 1 = text/ass, 2 = ass */ int format_id; /* 0 = bitmap, 1 = text/ass, 2 = ass */
...@@ -645,6 +646,10 @@ static int teletext_decode_frame(AVCodecContext *avctx, void *data, int *data_si ...@@ -645,6 +646,10 @@ static int teletext_decode_frame(AVCodecContext *avctx, void *data, int *data_si
if (!ctx->vbi) { if (!ctx->vbi) {
if (!(ctx->vbi = vbi_decoder_new())) if (!(ctx->vbi = vbi_decoder_new()))
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
if (ctx->default_region != -1) {
av_log(avctx, AV_LOG_INFO, "Setting default zvbi region to %i\n", ctx->default_region);
vbi_teletext_set_default_region(ctx->vbi, ctx->default_region);
}
if (!vbi_event_handler_register(ctx->vbi, VBI_EVENT_TTX_PAGE, handler, ctx)) { if (!vbi_event_handler_register(ctx->vbi, VBI_EVENT_TTX_PAGE, handler, ctx)) {
vbi_decoder_delete(ctx->vbi); vbi_decoder_delete(ctx->vbi);
ctx->vbi = NULL; ctx->vbi = NULL;
...@@ -792,6 +797,7 @@ static void teletext_flush(AVCodecContext *avctx) ...@@ -792,6 +797,7 @@ static void teletext_flush(AVCodecContext *avctx)
#define SD AV_OPT_FLAG_SUBTITLE_PARAM | AV_OPT_FLAG_DECODING_PARAM #define SD AV_OPT_FLAG_SUBTITLE_PARAM | AV_OPT_FLAG_DECODING_PARAM
static const AVOption options[] = { static const AVOption options[] = {
{"txt_page", "page numbers to decode, subtitle for subtitles, * for all", OFFSET(pgno), AV_OPT_TYPE_STRING, {.str = "*"}, 0, 0, SD}, {"txt_page", "page numbers to decode, subtitle for subtitles, * for all", OFFSET(pgno), AV_OPT_TYPE_STRING, {.str = "*"}, 0, 0, SD},
{"txt_default_region", "default G0 character set used for decoding", OFFSET(default_region), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 80, SD},
{"txt_chop_top", "discards the top teletext line", OFFSET(chop_top), AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, SD}, {"txt_chop_top", "discards the top teletext line", OFFSET(chop_top), AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, SD},
{"txt_format", "format of the subtitles (bitmap or text or ass)", OFFSET(format_id), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 2, SD, "txt_format"}, {"txt_format", "format of the subtitles (bitmap or text or ass)", OFFSET(format_id), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 2, SD, "txt_format"},
{"bitmap", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 0}, 0, 0, SD, "txt_format"}, {"bitmap", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 0}, 0, 0, SD, "txt_format"},
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
#define LIBAVCODEC_VERSION_MAJOR 58 #define LIBAVCODEC_VERSION_MAJOR 58
#define LIBAVCODEC_VERSION_MINOR 73 #define LIBAVCODEC_VERSION_MINOR 73
#define LIBAVCODEC_VERSION_MICRO 101 #define LIBAVCODEC_VERSION_MICRO 102
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \ LIBAVCODEC_VERSION_MINOR, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment