FFmpeg
Enumerations | Functions | Variables
jacosubdec.c File Reference
#include <time.h>
#include "ass.h"
#include "codec_internal.h"
#include "jacosub.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/time_internal.h"

Go to the source code of this file.

Enumerations

enum  {
  ALIGN_VB = 1<<0, ALIGN_VM = 1<<1, ALIGN_VT = 1<<2, ALIGN_JC = 1<<3,
  ALIGN_JL = 1<<4, ALIGN_JR = 1<<5
}
 

Functions

static int insert_text (AVBPrint *dst, const char *in, const char *arg)
 
static int insert_datetime (AVBPrint *dst, const char *in, const char *arg)
 
static int insert_color (AVBPrint *dst, const char *in, const char *arg)
 
static int insert_font (AVBPrint *dst, const char *in, const char *arg)
 
static void jacosub_to_ass (AVCodecContext *avctx, AVBPrint *dst, const char *src)
 
static int jacosub_decode_frame (AVCodecContext *avctx, AVSubtitle *sub, int *got_sub_ptr, const AVPacket *avpkt)
 

Variables

struct {
   const char *   from
 
   const char *   arg
 
   int(*   func )(AVBPrint *dst, const char
      *in, const char *arg)
 
ass_codes_map []
 
const FFCodec ff_jacosub_decoder
 

Detailed Description

JACOsub subtitle decoder

See also
http://unicorn.us.com/jacosub/jscripts.html

Definition in file jacosubdec.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ALIGN_VB 
ALIGN_VM 
ALIGN_VT 
ALIGN_JC 
ALIGN_JL 
ALIGN_JR 

Definition at line 86 of file jacosubdec.c.

Function Documentation

◆ insert_text()

static int insert_text ( AVBPrint *  dst,
const char *  in,
const char *  arg 
)
static

Definition at line 37 of file jacosubdec.c.

◆ insert_datetime()

static int insert_datetime ( AVBPrint *  dst,
const char *  in,
const char *  arg 
)
static

Definition at line 43 of file jacosubdec.c.

◆ insert_color()

static int insert_color ( AVBPrint *  dst,
const char *  in,
const char *  arg 
)
static

Definition at line 55 of file jacosubdec.c.

◆ insert_font()

static int insert_font ( AVBPrint *  dst,
const char *  in,
const char *  arg 
)
static

Definition at line 60 of file jacosubdec.c.

◆ jacosub_to_ass()

static void jacosub_to_ass ( AVCodecContext avctx,
AVBPrint *  dst,
const char *  src 
)
static

Definition at line 95 of file jacosubdec.c.

Referenced by jacosub_decode_frame().

◆ jacosub_decode_frame()

static int jacosub_decode_frame ( AVCodecContext avctx,
AVSubtitle sub,
int got_sub_ptr,
const AVPacket avpkt 
)
static

Definition at line 165 of file jacosubdec.c.

Variable Documentation

◆ from

const char* from

◆ arg

const char* arg

Definition at line 67 of file jacosubdec.c.

Referenced by amplify_channels(), amplify_frame(), async_buffer_task(), async_check_interrupt(), async_open(), audio_thread(), av_expr_count_func(), av_find_info_tag(), av_force_cpu_flags(), av_freep(), av_log_set_flags(), av_parse_video_rate(), avcodec_default_execute(), avcodec_default_execute2(), average_slice16(), average_slice8(), avfilter_graph_queue_command(), avfilter_graph_send_command(), avfilter_process_command(), avisynth_open_file(), bilateralh_planes(), bilateralo_planes(), bilateralv_planes(), bktr_init(), black_counter(), blend_frame_partial(), blur_planes(), box_slice(), cache_open(), cas_slice16(), cas_slice8(), check_keyboard_interaction(), checkasm_check_func(), checkasm_fail_func(), checkasm_report(), clear_slice16(), clear_slice8(), codec_create(), color_balance16(), color_balance16_p(), color_balance8(), color_balance8_p(), color_printf(), colorcontrast_slice16(), colorcontrast_slice16p(), colorcontrast_slice8(), colorcontrast_slice8p(), colorcorrect_slice16(), colorcorrect_slice8(), colorize_slice16(), colorize_slice8(), colorizey_slice16(), colorizey_slice8(), colormap_slice(), command(), complex_divide(), complex_multiply(), complex_xcorrelate(), compute_images_identity(), compute_images_msad(), compute_images_mse(), compute_sat_hue_metrics16(), compute_sat_hue_metrics8(), concat_parse_script(), config_comm_output(), config_input(), config_output(), convert_frame(), convert_frame_partial(), convolution_opencl_make_filter_params(), correct_frame(), deband_16_c(), deband_16_coupling_c(), deband_8_c(), deband_8_coupling_c(), dec_create(), decode_hq_slice_row(), decode_lowdelay_slice(), decode_slice(), decode_slices(), decode_subband_golomb(), decoder_start(), decoder_thread(), default_execute(), deinterlace_plane_slice(), deinterlace_slice(), denoise(), destroy_request_item(), diagonal_transformation(), displace_packed(), displace_planar(), distortion_correction_filter_slice(), dnxhd_encode_thread(), do_backgroundkey16_slice(), do_backgroundkey_slice(), do_chromahold16_slice(), do_chromahold_slice(), do_chromakey16_slice(), do_chromakey_slice(), do_despill_slice(), do_hsvhold16_slice(), do_hsvhold_slice(), do_hsvkey16_slice(), do_hsvkey_slice(), do_lumakey_slice16(), do_lumakey_slice8(), do_slice(), draw_carpet_slice(), draw_gradients_slice(), draw_gradients_slice16(), draw_gradients_slice32_planar(), draw_triangle_slice(), drc_channels(), dv_decode_video_segment(), dv_encode_video_segment(), dwt_plane(), encode_hq_slice(), encode_slice(), encode_thread(), encoder_thread(), epx2_slice(), epx3_slice(), estimate_motion_thread(), exec_func(), exposure_slice(), extract_lines(), ff_cos(), ff_filter_execute(), ff_filter_process_command(), ff_parse_channel_layout(), ff_parse_pixel_format(), ff_parse_sample_rate(), ff_slice_thread_execute_with_mainfunc(), fft_channels(), fft_horizontal(), fft_vertical(), fg_send_command(), filter16_brng(), filter16_tout(), filter16_vrep(), filter8_brng(), filter8_tout(), filter8_vrep(), filter_channel(), filter_channels(), filter_color(), filter_color2(), filter_horizontally(), filter_mono(), filter_postscale(), filter_slice(), filter_slice_alpha(), filter_slice_alpha16(), filter_slice_chroma(), filter_slice_chroma16(), filter_slice_gbrap(), filter_slice_gbrap10(), filter_slice_gbrap10_pl(), filter_slice_gbrap12(), filter_slice_gbrap12_pl(), filter_slice_gbrap16(), filter_slice_gbrap16_pl(), filter_slice_gbrap32(), filter_slice_gbrap32_pl(), filter_slice_gbrap_pl(), filter_slice_gbrp(), filter_slice_gbrp10(), filter_slice_gbrp10_pl(), filter_slice_gbrp12(), filter_slice_gbrp12_pl(), filter_slice_gbrp14(), filter_slice_gbrp14_pl(), filter_slice_gbrp16(), filter_slice_gbrp16_pl(), filter_slice_gbrp32(), filter_slice_gbrp32_pl(), filter_slice_gbrp9(), filter_slice_gbrp9_pl(), filter_slice_gbrp_pl(), filter_slice_grey_edge(), filter_slice_luma(), filter_slice_luma16(), filter_slice_packed(), filter_slice_planar(), filter_slice_rgb(), filter_slice_rgb0(), filter_slice_rgb0_pl(), filter_slice_rgb24(), filter_slice_rgb24_pl(), filter_slice_rgb48(), filter_slice_rgb48_pl(), filter_slice_rgba(), filter_slice_rgba64(), filter_slice_rgba64_pl(), filter_slice_rgba_packed(), filter_slice_rgba_pl(), filter_slice_rgba_planar(), filter_thread(), filter_vertically(), finish_group(), fir_channels(), frame_worker_thread(), free_frame(), hdcd_integrate(), headphone_convolute(), headphone_fast_convolute(), hw_device_init_from_string(), ifft_channels(), ifft_horizontal(), ifft_vertical(), init(), input_thread(), insert_datetime(), insert_text(), irdft_horizontal16(), irdft_horizontal8(), jacosub_to_ass(), libplacebo_process_command(), limitdiff_slice(), log_cb(), main(), maskedclamp_slice(), maskedminmax_slice(), mb_var_thread(), median_16(), median_8(), minmax_slice16(), minmax_slice8(), mix_frames(), monochrome_slice16(), monochrome_slice8(), morpho_slice(), multiply_slice(), mux_check_init(), muxer_thread(), mxf_read_content_storage(), mxf_read_cryptographic_context(), mxf_read_essence_container_data(), mxf_read_essence_group(), mxf_read_ffv1_sub_descriptor(), mxf_read_generic_descriptor(), mxf_read_identification_metadata(), mxf_read_index_table_segment(), mxf_read_indirect_value(), mxf_read_mca_sub_descriptor(), mxf_read_partition_pack(), mxf_read_preface_metadata(), mxf_read_primer_pack(), mxf_read_pulldown_component(), mxf_read_sequence(), mxf_read_source_clip(), mxf_read_tagged_value(), mxf_read_timecode_component(), mxf_read_track(), ndk_codec_create(), nlmeans_slice(), opt_abort_on(), opt_add_vfilter(), opt_attach(), opt_audio_codec(), opt_audio_filters(), opt_audio_frames(), opt_audio_qscale(), opt_bitrate(), opt_codec(), opt_cpucount(), opt_cpuflags(), opt_data_codec(), opt_data_frames(), opt_default(), opt_default_new(), opt_filter_complex(), opt_filter_complex_script(), opt_filter_hw_device(), opt_filter_threads(), opt_format(), opt_height(), opt_init_hw_device(), opt_input_file(), opt_input_file_i(), opt_loglevel(), opt_map(), opt_max_alloc(), opt_old2new(), opt_output_file_o(), opt_preset(), opt_print_filename(), opt_profile(), opt_qscale(), opt_read_intervals(), opt_recording_timestamp(), opt_sdp_file(), opt_show_entries(), opt_show_mode(), opt_show_optional_fields(), opt_stats_period(), opt_streamid(), opt_subtitle_codec(), opt_sync(), opt_target(), opt_timecode(), opt_video_codec(), opt_video_filters(), opt_video_frames(), opt_vstats_file(), opt_vsync(), opt_width(), ost_add(), param_init(), parse_and_set_vsync(), parse_channel_name(), parse_delays(), parse_gains(), parse_map(), parse_meta_type(), parse_option(), parse_points(), parse_speaker_pos(), parse_weights(), pixelize_slice(), pre_calculate_col(), pre_estimate_motion_thread(), premultiply_slice(), process_callback(), process_command(), process_slice(), process_slice_uyvy422(), process_slice_yuv420p(), process_slice_yuv422p(), process_slice_yuv444p(), psy_channels(), pthread_create(), rate_control(), rdft_horizontal16(), rdft_horizontal8(), read_channels(), read_custom_noise(), read_gains(), read_int(), read_tf_coefficients(), read_thread(), read_zp_coefficients(), receiver_thread(), resample_cubic(), resample_linear(), rnnoise_channels(), run_channel_cwt(), run_channel_cwt_prepare(), run_channel_fft(), run_channels_cwt_prepare(), sch_add_mux(), scroll_slice(), send_command(), sender_thread(), show_demuxers(), show_devices(), show_formats(), show_help(), show_muxers(), shutdown_callback(), skip_spaces(), slice_decode_thread(), slice_geq_filter(), slice_get_derivative(), slice_normalize(), sofalizer_convolute(), sofalizer_fast_convolute(), split_commandline(), ssim_plane(), ssim_plane_16bit(), subtitle_thread(), super2xsai(), task_wrapper(), temperature_slice16(), temperature_slice16p(), temperature_slice32(), temperature_slice8(), temperature_slice8p(), thread_entry(), thread_execute(), thread_execute2(), thread_main(), threshold_slice(), tonemap_slice(), update_gain_histories(), v210_decode_slice(), v410_decode_slice(), vibrance_slice16(), vibrance_slice16p(), vibrance_slice8(), vibrance_slice8p(), video_thread(), vif_filter1d(), vignetting_filter_slice(), walk_band_high(), walk_band_low(), weave_slice(), win32thread_worker(), write_option(), xfade_slice(), and xrun_callback().

◆ func

int(* func) (AVBPrint *dst, const char *in, const char *arg)

◆ ass_codes_map

const { ... } ass_codes_map[]
Initial value:
= {
{"\\~", "~", insert_text},
{"~", "{\\h}", insert_text},
{"\\n", "\\N", insert_text},
{"\\D", "%d %b %Y", insert_datetime},
{"\\T", "%H:%M", insert_datetime},
{"\\N", "{\\r}", insert_text},
{"\\I", "{\\i1}", insert_text},
{"\\i", "{\\i0}", insert_text},
{"\\B", "{\\b1}", insert_text},
{"\\b", "{\\b0}", insert_text},
{"\\U", "{\\u1}", insert_text},
{"\\u", "{\\u0}", insert_text},
{"\\C", "", insert_color},
{"\\F", "", insert_font},
}

Referenced by jacosub_to_ass().

◆ ff_jacosub_decoder

const FFCodec ff_jacosub_decoder
Initial value:
= {
.p.name = "jacosub",
CODEC_LONG_NAME("JACOsub subtitle"),
.priv_data_size = sizeof(FFASSDecoderContext),
}

Definition at line 196 of file jacosubdec.c.

AVMEDIA_TYPE_SUBTITLE
@ AVMEDIA_TYPE_SUBTITLE
Definition: avutil.h:204
ff_ass_subtitle_header_default
int ff_ass_subtitle_header_default(AVCodecContext *avctx)
Generate a suitable AVCodecContext.subtitle_header for SUBTITLE_ASS with default style.
Definition: ass.c:98
insert_datetime
static int insert_datetime(AVBPrint *dst, const char *in, const char *arg)
Definition: jacosubdec.c:43
AV_CODEC_ID_JACOSUB
@ AV_CODEC_ID_JACOSUB
Definition: codec_id.h:560
insert_text
static int insert_text(AVBPrint *dst, const char *in, const char *arg)
Definition: jacosubdec.c:37
CODEC_LONG_NAME
#define CODEC_LONG_NAME(str)
Definition: codec_internal.h:272
insert_font
static int insert_font(AVBPrint *dst, const char *in, const char *arg)
Definition: jacosubdec.c:60
jacosub_decode_frame
static int jacosub_decode_frame(AVCodecContext *avctx, AVSubtitle *sub, int *got_sub_ptr, const AVPacket *avpkt)
Definition: jacosubdec.c:165
ff_ass_decoder_flush
void ff_ass_decoder_flush(AVCodecContext *avctx)
Helper to flush a text subtitles decoder making use of the FFASSDecoderContext.
Definition: ass.c:166
FF_CODEC_DECODE_SUB_CB
#define FF_CODEC_DECODE_SUB_CB(func)
Definition: codec_internal.h:290
insert_color
static int insert_color(AVBPrint *dst, const char *in, const char *arg)
Definition: jacosubdec.c:55
FFASSDecoderContext
Definition: ass.h:46