Page MenuHomeFreeBSD

D33618.1790561216.diff
No OneTemporary

Size
14 KB
Referenced Files
None
Subscribers
None

D33618.1790561216.diff

Index: multimedia/Makefile
===================================================================
--- multimedia/Makefile
+++ multimedia/Makefile
@@ -8,6 +8,7 @@
SUBDIR += aom
SUBDIR += aravis
SUBDIR += arcan
+ SUBDIR += aribb24
SUBDIR += assimp
SUBDIR += atomicparsley
SUBDIR += audacious
Index: multimedia/aribb24/Makefile
===================================================================
--- /dev/null
+++ multimedia/aribb24/Makefile
@@ -0,0 +1,25 @@
+PORTNAME= aribb24
+DISTVERSION= 1.0.4.20190916
+CATEGORIES= multimedia
+
+MAINTAINER= driesm@FreeBSD.org
+COMMENT= ARIB STD-B24 library
+
+LICENSE= LGPL3
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+LIB_DEPENDS= libpng.so:graphics/png
+
+USES= autoreconf libtool pkgconfig
+USE_GITHUB= yes
+GH_ACCOUNT= jeeb
+GH_TAGNAME= a41b904d66ed991ace32a9827f629db3d438b47b
+USE_LDCONFIG= yes
+
+GNU_CONFIGURE= yes
+
+INSTALL_TARGET= install-strip
+
+OPTIONS_DEFINE= DOCS
+
+.include <bsd.port.mk>
Index: multimedia/aribb24/distinfo
===================================================================
--- /dev/null
+++ multimedia/aribb24/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1640862185
+SHA256 (jeeb-aribb24-1.0.4.20190916-a41b904d66ed991ace32a9827f629db3d438b47b_GH0.tar.gz) = 6254c0241d77b6aebfb4b3faae7c22377a0925203ed73fa24b591f9606d2ab24
+SIZE (jeeb-aribb24-1.0.4.20190916-a41b904d66ed991ace32a9827f629db3d438b47b_GH0.tar.gz) = 47460
Index: multimedia/aribb24/files/patch-src_aribb24__private.h
===================================================================
--- /dev/null
+++ multimedia/aribb24/files/patch-src_aribb24__private.h
@@ -0,0 +1,16 @@
+https://github.com/scimmia9286/aribb24/commit/fa54dee41aa38560f02868b24f911a24c33780a8
+--- src/aribb24_private.h.orig 2019-09-16 15:57:19 UTC
++++ src/aribb24_private.h
+@@ -35,9 +35,9 @@ struct arib_instance_private_t
+ char *psz_last_error;
+
+ drcs_conversion_t *p_drcs_conv;
+- int i_drcs_num;
+- unsigned int drcs_conv_table[188];
+- char drcs_hash_table[188][32 + 1];
++ int i_drcs_num[15];
++ unsigned int drcs_conv_table[15][188];
++ char drcs_hash_table[15][188][32 + 1];
+ };
+
+ void arib_log( arib_instance_t *, const char *, ... );
Index: multimedia/aribb24/files/patch-src_decoder.c
===================================================================
--- /dev/null
+++ multimedia/aribb24/files/patch-src_decoder.c
@@ -0,0 +1,89 @@
+https://github.com/scimmia9286/aribb24/commit/fa54dee41aa38560f02868b24f911a24c33780a8
+--- src/decoder.c.orig 2019-09-16 15:57:19 UTC
++++ src/decoder.c
+@@ -82,6 +82,7 @@ struct arib_decoder_t
+ int (*handle_g2)(arib_decoder_t *, int);
+ int (*handle_g3)(arib_decoder_t *, int);
+ int kanji_ku;
++ int drcs_plane;
+
+ int i_control_time;
+
+@@ -448,11 +449,8 @@ static int decoder_handle_drcs( arib_decoder_t *decode
+ {
+ unsigned int uc;
+
+- uc = 0;
+- if( c < decoder->p_instance->p->i_drcs_num )
+- {
+- uc = decoder->p_instance->p->drcs_conv_table[c];
+- }
++ uc = decoder->p_instance->p->drcs_conv_table[decoder->drcs_plane-1][c];
++
+ if( uc == 0 )
+ {
+ /* uc = 0x3000; */ /* WHITESPACE */
+@@ -555,6 +553,7 @@ static int decoder_handle_esc( arib_decoder_t *decoder
+ {
+ int c;
+ int (**handle)(arib_decoder_t *, int);
++ int drcs = 0;
+
+ handle = &decoder->handle_g0;
+ while( decoder_pull( decoder, &c ) != 0 )
+@@ -562,6 +561,7 @@ static int decoder_handle_esc( arib_decoder_t *decoder
+ switch( c )
+ {
+ case 0x20: // DRCS
++ drcs = 1;
+ break;
+ case 0x24:
+ case 0x28:
+@@ -585,12 +585,29 @@ static int decoder_handle_esc( arib_decoder_t *decoder
+ return 1;
+ case 0x39:
+ case 0x3b:
+- case 0x42:
+ *handle = decoder_handle_kanji;
+ return 1;
++ case 0x42:
++ if (drcs==1)
++ {
++ decoder->drcs_plane = c-0x40;
++ *handle = decoder_handle_drcs;
++ }
++ else
++ {
++ *handle = decoder_handle_kanji;
++ }
+ case 0x36:
+ case 0x4a:
+- *handle = decoder_handle_alnum;
++ if (drcs==1)
++ {
++ decoder->drcs_plane = c-0x40;
++ *handle = decoder_handle_drcs;
++ }
++ else
++ {
++ *handle = decoder_handle_alnum;
++ }
+ return 1;
+ case 0x40:
+ case 0x41:
+@@ -608,6 +625,7 @@ static int decoder_handle_esc( arib_decoder_t *decoder
+ case 0x4d:
+ case 0x4e:
+ case 0x4f:
++ decoder->drcs_plane = c-0x40;
+ *handle = decoder_handle_drcs;
+ return 1;
+ case 0x6e: //LS2
+@@ -1401,6 +1419,7 @@ void arib_initialize_decoder( arib_decoder_t* decoder
+ decoder->handle_g2 = decoder_handle_hiragana;
+ decoder->handle_g3 = decoder_handle_katakana;
+ decoder->kanji_ku = -1;
++ decoder->drcs_plane = -1;
+
+ decoder->i_control_time = 0;
+
Index: multimedia/aribb24/files/patch-src_drcs.h
===================================================================
--- /dev/null
+++ multimedia/aribb24/files/patch-src_drcs.h
@@ -0,0 +1,11 @@
+https://github.com/scimmia9286/aribb24/commit/58a34b8fabf4d0e9e1984fb603a97f52fb934a09
+--- src/drcs.h.orig 2019-09-16 15:57:19 UTC
++++ src/drcs.h
+@@ -77,6 +77,6 @@ typedef struct drcs_data_s
+
+ bool apply_drcs_conversion_table( arib_instance_t * );
+ bool load_drcs_conversion_table( arib_instance_t * );
+-void save_drcs_pattern( arib_instance_t *, int, int, int, const int8_t* );
++void save_drcs_pattern( arib_instance_t *, int, int, int, const int8_t*, int16_t );
+
+ #endif
Index: multimedia/aribb24/files/patch-src_drcs.c
===================================================================
--- /dev/null
+++ multimedia/aribb24/files/patch-src_drcs.c
@@ -0,0 +1,89 @@
+https://github.com/scimmia9286/aribb24/commit/58a34b8fabf4d0e9e1984fb603a97f52fb934a09
+https://github.com/scimmia9286/aribb24/commit/fa54dee41aa38560f02868b24f911a24c33780a8
+--- src/drcs.c.orig 2019-09-16 15:57:19 UTC
++++ src/drcs.c
+@@ -127,32 +127,39 @@ static bool create_arib_datadir( arib_instance_t *p_in
+
+ bool apply_drcs_conversion_table( arib_instance_t *p_instance )
+ {
+- for( int i = 0; i < p_instance->p->i_drcs_num; i++ )
++ for( int i = 0; i < 15; i++ )
+ {
+- unsigned int uc = 0;
+- drcs_conversion_t *p_drcs_conv = p_instance->p->p_drcs_conv;
+- while( p_drcs_conv != NULL )
++ for( int j = 0; j < p_instance->p->i_drcs_num[i]; j++ )
+ {
+- if( strcmp( p_drcs_conv->hash, p_instance->p->drcs_hash_table[i] ) == 0 )
++ if (p_instance->p->drcs_hash_table[i][j][0] != 0)
+ {
+- uc = p_drcs_conv->code;
+- break;
+- }
+- p_drcs_conv = p_drcs_conv->p_next;
+- }
++ unsigned int uc = 0;
++ drcs_conversion_t *p_drcs_conv = p_instance->p->p_drcs_conv;
++ while( p_drcs_conv != NULL )
++ {
++ if( strcmp( p_drcs_conv->hash, p_instance->p->drcs_hash_table[i][j] ) == 0 )
++ {
++ uc = p_drcs_conv->code;
++ break;
++ }
++ p_drcs_conv = p_drcs_conv->p_next;
++ }
++
+ #ifdef DEBUG_ARIBSUB
+- if( uc )
+- {
+- arib_log( p_instance, "Mapping [%s=U+%04x] will be used.",
+- p_instance->p->drcs_hash_table[i], uc );
+- }
+- else
+- {
+- arib_log( p_instance, "Mapping for hash[%s] is not found.",
+- p_instance->p->drcs_hash_table[i] );
+- }
++ if( uc )
++ {
++ arib_log( p_instance, "Mapping [%s=U+%04x] will be used.",
++ p_instance->p->drcs_hash_table[i][j], uc );
++ }
++ else
++ {
++ arib_log( p_instance, "Mapping for hash[%s] is not found.",
++ p_instance->p->drcs_hash_table[i][j] );
++ }
+ #endif
+- p_instance->p->drcs_conv_table[i] = uc;
++ p_instance->p->drcs_conv_table[i][j] = uc;
++ }
++ }
+ }
+ return true;
+ }
+@@ -406,15 +413,19 @@ png_create_write_struct_failed:
+ void save_drcs_pattern(
+ arib_instance_t *p_instance,
+ int i_width, int i_height,
+- int i_depth, const int8_t* p_patternData )
++ int i_depth, const int8_t* p_patternData,
++ int16_t i_CharacterCode )
+ {
++ int i_drcsPlane = ((i_CharacterCode >> 8) & 0xff) - 0x40;
++ int i_code = (i_CharacterCode & 0xff) - 0x20;
+ char* psz_hash = get_drcs_pattern_data_hash( p_instance,
+ i_width, i_height, i_depth, p_patternData );
+
+- strncpy( p_instance->p->drcs_hash_table[p_instance->p->i_drcs_num], psz_hash, 32 );
+- p_instance->p->drcs_hash_table[p_instance->p->i_drcs_num][32] = '\0';
++ strncpy( p_instance->p->drcs_hash_table[i_drcsPlane-1][i_code-1], psz_hash, 32 );
++ p_instance->p->drcs_hash_table[i_drcsPlane-1][i_code-1][32] = '\0';
+
+- p_instance->p->i_drcs_num++;
++ p_instance->p->i_drcs_num[i_drcsPlane-1] = i_code > p_instance->p->i_drcs_num[i_drcsPlane-1] ?
++ i_code : p_instance->p->i_drcs_num[i_drcsPlane-1];
+
+ save_drcs_pattern_data_image( p_instance, psz_hash,
+ i_width, i_height, i_depth, p_patternData );
Index: multimedia/aribb24/files/patch-src_parser.c
===================================================================
--- /dev/null
+++ multimedia/aribb24/files/patch-src_parser.c
@@ -0,0 +1,85 @@
+https://github.com/scimmia9286/aribb24/commit/58a34b8fabf4d0e9e1984fb603a97f52fb934a09
+https://github.com/scimmia9286/aribb24/commit/fa54dee41aa38560f02868b24f911a24c33780a8
+--- src/parser.c.orig 2019-09-16 15:57:19 UTC
++++ src/parser.c
+@@ -79,7 +79,6 @@ static void parse_data_unit_DRCS( arib_parser_t *p_par
+ uint8_t i_data_unit_parameter,
+ uint32_t i_data_unit_size )
+ {
+- p_parser->p_instance->p->i_drcs_num = 0;
+ #ifdef ARIBSUB_GEN_DRCS_DATA
+ if( p_parser->p_drcs_data != NULL )
+ {
+@@ -119,7 +118,7 @@ static void parse_data_unit_DRCS( arib_parser_t *p_par
+
+ for( int i = 0; i < i_NumberOfCode; i++ )
+ {
+- bs_skip( p_bs, 16 ); /* i_character_code */
++ int16_t i_CharacterCode = bs_read( p_bs, 16 ); /* i_character_code */
+ p_parser->i_data_unit_size += 2;
+ uint8_t i_NumberOfFont = bs_read( p_bs, 8 );
+ p_parser->i_data_unit_size += 1;
+@@ -139,7 +138,11 @@ static void parse_data_unit_DRCS( arib_parser_t *p_par
+
+ for( int j = 0; j < i_NumberOfFont; j++ )
+ {
++#ifdef ARIBSUB_GEN_DRCS_DATA
++ int8_t i_fontId = bs_read( p_bs, 4 ); /* i_fontID */
++#else
+ bs_skip( p_bs, 4 ); /* i_fontID */
++#endif //ARUBSUB_GEN_DRCS_DATA
+ uint8_t i_mode = bs_read( p_bs, 4 );
+ p_parser->i_data_unit_size += 1;
+
+@@ -206,18 +209,26 @@ static void parse_data_unit_DRCS( arib_parser_t *p_par
+
+ #ifdef ARIBSUB_GEN_DRCS_DATA
+ save_drcs_pattern( p_parser->p_instance, i_width, i_height, i_depth + 2,
+- p_drcs_pattern_data->p_patternData );
++ p_drcs_pattern_data->p_patternData, i_CharacterCode );
+ #else
+ save_drcs_pattern( p_parser->p_instance, i_width, i_height, i_depth + 2,
+- p_patternData );
++ p_patternData, i_CharacterCode );
+ free( p_patternData );
+ #endif //ARIBSUB_GEN_DRCS_DATA
+ }
+ else
+ {
++#ifdef ARIBSUB_GEN_DRCS_DATA
++ int8_t i_regionX = bs_read( p_bs, 8 ); /* i_regionX */
++#else
+ bs_skip( p_bs, 8 ); /* i_regionX */
++#endif //ARIBSUB_GEN_DRCS_DATA
+ p_parser->i_data_unit_size += 1;
++#ifdef ARIBSUB_GEN_DRCS_DATA
++ int8_t i_regionY = bs_read( p_bs, 8 ); /* i_regionY */
++#else
+ bs_skip( p_bs, 8 ); /* i_regionY */
++#endif //ARIBSUB_GEN_DRCS_DATA
+ p_parser->i_data_unit_size += 1;
+ uint16_t i_geometricData_length = bs_read( p_bs, 16 );
+ p_parser->i_data_unit_size += 2;
+@@ -245,7 +256,11 @@ static void parse_data_unit_DRCS( arib_parser_t *p_par
+
+ for( int k = 0; k < i_geometricData_length ; k++ )
+ {
++#ifdef ARIBSUB_GEN_DRCS_DATA
++ int8_t i_geometricData = bs_read( p_bs, 8 ); /* i_geometric_data */
++#else
+ bs_skip( p_bs, 8 ); /* i_geometric_data */
++#endif //ARIBSUB_GEN_DRCS_DATA
+ p_parser->i_data_unit_size += 1;
+
+ #ifdef ARIBSUB_GEN_DRCS_DATA
+@@ -344,6 +359,10 @@ static void parse_caption_management_data( arib_parser
+ p_parser->i_data_unit_size = 0;
+ p_parser->i_subtitle_data_size = 0;
+ p_parser->psz_subtitle_data = NULL;
++ memset(p_parser->p_instance->p->i_drcs_num, 0,
++ sizeof(p_parser->p_instance->p->i_drcs_num));
++ memset(p_parser->p_instance->p->drcs_hash_table, 0,
++ sizeof(p_parser->p_instance->p->drcs_hash_table));
+ if( i_data_unit_loop_length > 0 )
+ {
+ p_parser->psz_subtitle_data = (unsigned char*) calloc(
Index: multimedia/aribb24/pkg-descr
===================================================================
--- /dev/null
+++ multimedia/aribb24/pkg-descr
@@ -0,0 +1,4 @@
+A library for ARIB STD-B24, decoding JIS 8 bit characters
+and parsing MPEG-TS stream.
+
+WWW: https://github.com/nkoriyama/aribb24
Index: multimedia/aribb24/pkg-plist
===================================================================
--- /dev/null
+++ multimedia/aribb24/pkg-plist
@@ -0,0 +1,11 @@
+include/aribb24/aribb24.h
+include/aribb24/bits.h
+include/aribb24/decoder.h
+include/aribb24/parser.h
+lib/libaribb24.a
+lib/libaribb24.so
+lib/libaribb24.so.0
+lib/libaribb24.so.0.0.0
+libdata/pkgconfig/aribb24.pc
+%%PORTDOCS%%%%DOCSDIR%%/COPYING
+%%PORTDOCS%%%%DOCSDIR%%/README.md

File Metadata

Mime Type
text/plain
Expires
Mon, Sep 28, 2:06 AM (1 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29951028
Default Alt Text
D33618.1790561216.diff (14 KB)

Event Timeline