redbutton-devel Mailing List for RedButton MHEG Engine (Page 13)
Brought to you by:
skilvington
You can subscribe to this list here.
| 2006 |
Jan
(1) |
Feb
(4) |
Mar
(27) |
Apr
(6) |
May
(46) |
Jun
(45) |
Jul
(7) |
Aug
(4) |
Sep
(7) |
Oct
(5) |
Nov
(10) |
Dec
(11) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(49) |
Feb
(29) |
Mar
(35) |
Apr
(43) |
May
(23) |
Jun
(4) |
Jul
(1) |
Aug
(58) |
Sep
(66) |
Oct
(27) |
Nov
(15) |
Dec
(1) |
| 2008 |
Jan
(11) |
Feb
|
Mar
(8) |
Apr
|
May
|
Jun
(30) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
|
Nov
(3) |
Dec
(6) |
| 2009 |
Jan
(6) |
Feb
(1) |
Mar
(2) |
Apr
(5) |
May
(2) |
Jun
(1) |
Jul
(7) |
Aug
|
Sep
(2) |
Oct
(2) |
Nov
|
Dec
(6) |
| 2010 |
Jan
(6) |
Feb
|
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(6) |
Sep
(4) |
Oct
|
Nov
(11) |
Dec
(4) |
| 2011 |
Jan
|
Feb
(11) |
Mar
(8) |
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
(4) |
Oct
|
Nov
(2) |
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <ski...@us...> - 2007-08-23 11:18:31
|
Revision: 337
http://redbutton.svn.sourceforge.net/redbutton/?rev=337&view=rev
Author: skilvington
Date: 2007-08-23 04:18:29 -0700 (Thu, 23 Aug 2007)
Log Message:
-----------
literal items may be alternates too
Modified Paths:
--------------
redbutton-author/trunk/ccc.y
Modified: redbutton-author/trunk/ccc.y
===================================================================
--- redbutton-author/trunk/ccc.y 2007-08-23 11:12:14 UTC (rev 336)
+++ redbutton-author/trunk/ccc.y 2007-08-23 11:18:29 UTC (rev 337)
@@ -146,33 +146,22 @@
case IT_LITERAL:
tok_name = add_token(&state.tokens, item->name);
buf_append(&state.grammar, tok_name);
- buf_append(&state.grammar, item->next ? " " : "\n\t");
break;
case IT_IDENTIFIER:
buf_append(&state.grammar, item->name);
- /* do we need all the items, or just one of them */
- if(state.and_items)
- buf_append(&state.grammar, item->next ? " " : "\n\t");
- else
- buf_append(&state.grammar, item->next ? "\n\t|\n\t" : "\n\t");
break;
case IT_OPTIONAL:
buf_append(&state.grammar, "[FIXME:");
buf_append(&state.grammar, item->name);
-buf_append(&state.grammar, "] ");
+buf_append(&state.grammar, "]");
break;
case IT_ONEORMORE:
/* add "IdentifierOneOrMore" to the grammar */
buf_append(&state.grammar, item->name);
buf_append(&state.grammar, "OneOrMore");
- /* do we need all the items, or just one of them */
- if(state.and_items)
- buf_append(&state.grammar, item->next ? " " : "\n\t");
- else
- buf_append(&state.grammar, item->next ? "\n\t|\n\t" : "\n\t");
/* now create the IdentifierOneOrMore rule */
buf_append(&state.oneormores, item->name);
buf_append(&state.oneormores, "OneOrMore:\n\t");
@@ -188,6 +177,11 @@
fatal("Unexpected item type");
break;
}
+ /* do we need all the items, or just one of them */
+ if(state.and_items)
+ buf_append(&state.grammar, item->next ? " " : "\n\t");
+ else
+ buf_append(&state.grammar, item->next ? "\n\t|\n\t" : "\n\t");
}
buf_append(&state.grammar, ";\n\n");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-08-23 10:03:28
|
Revision: 335
http://redbutton.svn.sourceforge.net/redbutton/?rev=335&view=rev
Author: skilvington
Date: 2007-08-23 03:03:26 -0700 (Thu, 23 Aug 2007)
Log Message:
-----------
output %token directives for the literal strings
Modified Paths:
--------------
redbutton-author/trunk/ccc.y
Modified: redbutton-author/trunk/ccc.y
===================================================================
--- redbutton-author/trunk/ccc.y 2007-08-23 08:43:41 UTC (rev 334)
+++ redbutton-author/trunk/ccc.y 2007-08-23 10:03:26 UTC (rev 335)
@@ -22,16 +22,35 @@
enum item_type type;
};
+/* the literal strings we need to make into %token's */
+struct token
+{
+ struct token *next;
+ char *name;
+};
+
+/* build up the separate parts of the ouput file in these buffers */
+struct buf
+{
+ char *str; /* the buffer */
+ size_t len; /* length of the string in the buffer */
+ size_t nalloced; /* number of bytes malloc'ed to the buffer */
+};
+
/* global state */
struct
{
struct item *items; /* NULL => start a new identifier */
bool and_items; /* true => identifier must contain all items */
+ struct token *tokens; /* "%token" section of the output file */
+ struct buf grammar; /* grammar section of the output file */
+ struct buf oneormores; /* grammar section for Identifier+ rules */
} state;
/* input line we are currently parsing */
int yylineno = 1;
+/* yacc functions we need to provide */
void
yyerror(const char *str)
{
@@ -46,13 +65,30 @@
return 1;
}
+/* here we go ... */
+void print_tokens(struct token *);
+void add_token(struct token **, char *);
+char *unquote(char *);
+
+void buf_init(struct buf *);
+void buf_append(struct buf *, char *);
+
int
main(void)
{
state.items = NULL;
+ state.tokens = NULL;
+ buf_init(&state.grammar);
+ buf_init(&state.oneormores);
yyparse();
+ print_tokens(state.tokens);
+ printf("%%%%\n");
+ printf("%s", state.grammar.str);
+ printf("%s", state.oneormores.str);
+ printf("%%%%\n");
+
return EXIT_SUCCESS;
}
@@ -99,16 +135,34 @@
struct item *item;
struct item *next;
-printf("%s:\n", name);
-for(item=state.items; item; item=item->next)
-{
-printf("\t%s",item->name);
-if(item->type==IT_OPTIONAL) printf(" [optional]");
-if(item->type==IT_ONEORMORE) printf(" oneormore+");
-if(item->next && !state.and_items) printf (" |");
-printf("\n");
-}
+ buf_append(&state.grammar, name);
+ buf_append(&state.grammar, ":\n");
+ for(item=state.items; item; item=item->next)
+ {
+ switch(item->type)
+ {
+ case IT_LITERAL:
+ add_token(&state.tokens, item->name);
+ break;
+
+ case IT_IDENTIFIER:
+ break;
+
+ case IT_OPTIONAL:
+ break;
+
+ case IT_ONEORMORE:
+ break;
+
+ default:
+ fatal("Unexpected item type");
+ break;
+ }
+ }
+
+ buf_append(&state.grammar, "\t;\n\n");
+
/* free the items */
item = state.items;
while(item)
@@ -123,6 +177,147 @@
return;
}
+void
+print_tokens(struct token *t)
+{
+ while(t)
+ {
+ printf("%%token %s\n", t->name);
+ t = t->next;
+ }
+
+ return;
+}
+
+void
+add_token(struct token **head, char *quoted)
+{
+ struct token *t = malloc(sizeof(struct token));
+ struct token *list;
+
+ if(t == NULL)
+ fatal("Out of memory");
+
+ t->next = NULL;
+ t->name = unquote(quoted);
+
+ /* check we haven't got it already */
+ list = *head;
+ while(list)
+ {
+ if(strcmp(list->name, t->name) == 0)
+ {
+ free(t->name);
+ free(t);
+ return;
+ }
+ list = list->next;
+ }
+
+ /* add it to the end of the list */
+ if(*head == NULL)
+ {
+ *head = t;
+ }
+ else
+ {
+ list = *head;
+ while(list->next)
+ list = list->next;
+ list->next = t;
+ }
+
+ return;
+}
+
+char *
+unquote(char *q)
+{
+ char *output;
+ char *unq;
+
+ /* check for special cases */
+ if(strcmp(q, "\"}\"") == 0)
+ {
+ if((output = strdup("RBRACE")) == NULL)
+ fatal("Out of memory");
+ return output;
+ }
+ else if(strcmp(q, "\"(\"") == 0)
+ {
+ if((output = strdup("LPAREN")) == NULL)
+ fatal("Out of memory");
+ return output;
+ }
+ else if(strcmp(q, "\")\"") == 0)
+ {
+ if((output = strdup("RPAREN")) == NULL)
+ fatal("Out of memory");
+ return output;
+ }
+
+ /* max length it could be */
+ if((output = malloc(strlen(q) + 1)) == NULL)
+ fatal("Out of memory");
+
+ /*
+ * remove any non-alphabetic chars (inc the start and end ")
+ * convert the remaining chars to uppercase
+ */
+ unq = output;
+ while(*q)
+ {
+ if(isalpha(*q))
+ {
+ *unq = toupper(*q);
+ unq ++;
+ }
+ q ++;
+ }
+
+ /* terminate it */
+ *unq = '\0';
+
+ /* sanity check */
+ if(output[0] == '\0')
+ fatal("Invalid literal string");
+
+ return output;
+}
+
+#define INIT_BUF_SIZE 1024
+
+void
+buf_init(struct buf *b)
+{
+ b->len = 0;
+ b->nalloced = INIT_BUF_SIZE;
+ if((b->str = malloc(b->nalloced)) == NULL)
+ fatal("Out of memory");
+
+ return;
+}
+
+void
+buf_append(struct buf *b, char *app_str)
+{
+ size_t app_len = strlen(app_str);
+
+ /* +1 for the \0 terminator */
+ while(b->nalloced < b->len + app_len + 1)
+ {
+ b->nalloced *= 2;
+ if((b->str = realloc(b->str, b->nalloced)) == NULL)
+ fatal("Out of memory");
+ }
+
+ memcpy(b->str + b->len, app_str, app_len);
+ b->len += app_len;
+ b->str[b->len] = '\0';
+
+ return;
+}
+
%}
%token COMMENT
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-08-23 08:43:46
|
Revision: 334
http://redbutton.svn.sourceforge.net/redbutton/?rev=334&view=rev
Author: skilvington
Date: 2007-08-23 01:43:41 -0700 (Thu, 23 Aug 2007)
Log Message:
-----------
make sure it works with flex/bison and lex/yacc
Modified Paths:
--------------
redbutton-author/trunk/Makefile
redbutton-author/trunk/ccc.l
Modified: redbutton-author/trunk/Makefile
===================================================================
--- redbutton-author/trunk/Makefile 2007-08-22 16:30:14 UTC (rev 333)
+++ redbutton-author/trunk/Makefile 2007-08-23 08:43:41 UTC (rev 334)
@@ -1,8 +1,10 @@
CC=gcc
CFLAGS=-Wall -O2
-LEX=lex
-YACC=yacc
+LEX=flex
+YACC=bison
+#LEX=lex
+#YACC=yacc
DESTDIR=/usr/local
@@ -13,9 +15,9 @@
TARDIR=`basename ${PWD}`
ccc: ccc.y ccc.l
- ${LEX} -i ccc.l
- ${YACC} -d ccc.y
- ${CC} ${CFLAGS} -o ccc lex.yy.c y.tab.c
+ ${LEX} -i -t ccc.l > lex.ccc.c
+ ${YACC} -b ccc -d ccc.y
+ ${CC} ${CFLAGS} -o ccc lex.ccc.c ccc.tab.c
mhegc: ${OBJS}
${CC} ${CFLAGS} -o mhegc ${OBJS} ${LIBS}
@@ -27,7 +29,7 @@
install -m 755 mhegc ${DESTDIR}/bin
clean:
- rm -f mhegc ccc *.o core
+ rm -f mhegc ccc lex.ccc.c ccc.tab.[ch] *.o core
tar:
make clean
Modified: redbutton-author/trunk/ccc.l
===================================================================
--- redbutton-author/trunk/ccc.l 2007-08-22 16:30:14 UTC (rev 333)
+++ redbutton-author/trunk/ccc.l 2007-08-23 08:43:41 UTC (rev 334)
@@ -1,6 +1,6 @@
%{
#include <string.h>
-#include "y.tab.h"
+#include "ccc.tab.h"
extern int yylineno;
%}
%%
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Mario R. <mar...@go...> - 2007-08-22 22:51:47
|
Hi actually, I think the test should be: if (abs(frequency - target) >= 1 kHz) ... error Which allows for 10700 Hz to be equal to 10650 Hz |
|
From: Mario R. <mar...@go...> - 2007-08-22 22:30:00
|
I've noticed that Kaffeine tunes a channel up to the nearest kHz, while scan generate a channels.conf with frequency exact to 1 Hz. That implies that when I watch TV with Kaffeine I get this error from rb-download [andrea@thinkpad tmp]$ rb-download -vv 4164 Getting frontend info Adapter 0 is a 'DiBcom 3000MC/P' DVB-T card Trying to open /home/andrea/.tzap/channels.conf Unable to open '/dev/dvb/adapter0/frontend0' read/write; you will not be able to retune Getting frontend info Searching channels.conf for service_id 4164 BBC ONE:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:600:601:4164 Current frequency 505833000; needed 505833330; first_time=0 Retuning to frequency 505833330 Unable to retune: ioctl FE_SET_FRONTEND: Operation not permitted We might need to have a less strict check on the frequency, where we only check "frequency / 1000". What do you think? |
|
From: <ski...@us...> - 2007-08-22 16:30:21
|
Revision: 333
http://redbutton.svn.sourceforge.net/redbutton/?rev=333&view=rev
Author: skilvington
Date: 2007-08-22 09:30:14 -0700 (Wed, 22 Aug 2007)
Log Message:
-----------
factor out the malloc
Modified Paths:
--------------
redbutton-author/trunk/ccc.y
Modified: redbutton-author/trunk/ccc.y
===================================================================
--- redbutton-author/trunk/ccc.y 2007-08-22 16:23:44 UTC (rev 332)
+++ redbutton-author/trunk/ccc.y 2007-08-22 16:30:14 UTC (rev 333)
@@ -67,16 +67,15 @@
void
add_item(enum item_type type, char *name)
{
- struct item *new_item;
+ struct item *new_item = malloc(sizeof(struct item));
- if(name == NULL)
+ /* did our malloc or lex's strdup fail */
+ if(new_item == NULL || name == NULL)
fatal("Out of memory");
if(state.items == NULL)
{
- if((state.items = malloc(sizeof(struct item))) == NULL)
- fatal("Out of memory");
- new_item = state.items;
+ state.items = new_item;
}
else
{
@@ -84,9 +83,7 @@
struct item *i = state.items;
while(i->next)
i = i->next;
- if((i->next = malloc(sizeof(struct item))) == NULL)
- fatal("Out of memory");
- new_item = i->next;
+ i->next = new_item;
}
new_item->next = NULL;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-08-22 16:23:46
|
Revision: 332
http://redbutton.svn.sourceforge.net/redbutton/?rev=332&view=rev
Author: skilvington
Date: 2007-08-22 09:23:44 -0700 (Wed, 22 Aug 2007)
Log Message:
-----------
read the input file into a data structure
Modified Paths:
--------------
redbutton-author/trunk/ccc.y
Modified: redbutton-author/trunk/ccc.y
===================================================================
--- redbutton-author/trunk/ccc.y 2007-08-22 15:32:46 UTC (rev 331)
+++ redbutton-author/trunk/ccc.y 2007-08-22 16:23:44 UTC (rev 332)
@@ -1,9 +1,34 @@
%{
#include <stdio.h>
#include <string.h>
+#include <stdbool.h>
+#include <stdlib.h>
#define YYSTYPE char *
+/* build up a list of items that define the current identifier */
+enum item_type
+{
+ IT_LITERAL, /* "LiteralString" */
+ IT_IDENTIFIER, /* NormalIdentifier */
+ IT_OPTIONAL, /* [OptionalIdentifier] */
+ IT_ONEORMORE /* OneOrMoreIdentifier+ */
+};
+
+struct item
+{
+ struct item *next;
+ char *name;
+ enum item_type type;
+};
+
+/* global state */
+struct
+{
+ struct item *items; /* NULL => start a new identifier */
+ bool and_items; /* true => identifier must contain all items */
+} state;
+
/* input line we are currently parsing */
int yylineno = 1;
@@ -11,6 +36,8 @@
yyerror(const char *str)
{
fprintf(stderr, "Error: %s at line %d\n", str, yylineno);
+
+ return;
}
int
@@ -22,11 +49,83 @@
int
main(void)
{
+ state.items = NULL;
+
yyparse();
- return 0;
+ return EXIT_SUCCESS;
}
+void
+fatal(char *str)
+{
+ yyerror(str);
+
+ exit(EXIT_FAILURE);
+}
+
+void
+add_item(enum item_type type, char *name)
+{
+ struct item *new_item;
+
+ if(name == NULL)
+ fatal("Out of memory");
+
+ if(state.items == NULL)
+ {
+ if((state.items = malloc(sizeof(struct item))) == NULL)
+ fatal("Out of memory");
+ new_item = state.items;
+ }
+ else
+ {
+ /* find the end of the list */
+ struct item *i = state.items;
+ while(i->next)
+ i = i->next;
+ if((i->next = malloc(sizeof(struct item))) == NULL)
+ fatal("Out of memory");
+ new_item = i->next;
+ }
+
+ new_item->next = NULL;
+ new_item->name = name; /* lex strdup's it for us */
+ new_item->type = type;
+
+ return;
+}
+
+void
+output_def(char *name)
+{
+ struct item *item;
+ struct item *next;
+
+printf("%s:\n", name);
+for(item=state.items; item; item=item->next)
+{
+printf("\t%s",item->name);
+if(item->type==IT_OPTIONAL) printf(" [optional]");
+if(item->type==IT_ONEORMORE) printf(" oneormore+");
+if(item->next && !state.and_items) printf (" |");
+printf("\n");
+}
+
+ /* free the items */
+ item = state.items;
+ while(item)
+ {
+ next = item->next;
+ free(item->name);
+ free(item);
+ item = next;
+ }
+ state.items = NULL;
+
+ return;
+}
+
%}
%token COMMENT
@@ -51,19 +150,19 @@
|
IDENTIFIER DEFINEDAS definition ENDCLAUSE
{
- printf("DEFINE:'%s'\n", $1);
+ output_def($1);
}
;
definition:
and_items
{
- printf("AND-");
+ state.and_items = true;
}
|
or_items
{
- printf("OR-");
+ state.and_items = false;
}
;
@@ -82,22 +181,22 @@
item:
LITERAL
{
- printf("LITERAL:'%s'\n", $1);
+ add_item(IT_LITERAL, $1);
}
|
IDENTIFIER
{
- printf("IDENTIFIER:'%s'\n", $1);
+ add_item(IT_IDENTIFIER, $1);
}
|
LBRACKET IDENTIFIER RBRACKET
{
- printf("[IDENTIFIER]:'%s'\n", $2);
+ add_item(IT_OPTIONAL, $2);
}
|
IDENTIFIER ONEORMORE
{
- printf("IDENTIFIER+:'%s'\n", $1);
+ add_item(IT_ONEORMORE, $1);
}
;
%%
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-08-22 15:32:49
|
Revision: 331
http://redbutton.svn.sourceforge.net/redbutton/?rev=331&view=rev
Author: skilvington
Date: 2007-08-22 08:32:46 -0700 (Wed, 22 Aug 2007)
Log Message:
-----------
keep track of the current input line number
Modified Paths:
--------------
redbutton-author/trunk/ccc.l
redbutton-author/trunk/ccc.y
Modified: redbutton-author/trunk/ccc.l
===================================================================
--- redbutton-author/trunk/ccc.l 2007-08-22 13:32:05 UTC (rev 330)
+++ redbutton-author/trunk/ccc.l 2007-08-22 15:32:46 UTC (rev 331)
@@ -1,6 +1,7 @@
%{
#include <string.h>
#include "y.tab.h"
+extern int yylineno;
%}
%%
\/\/[^\n\r\f]* return COMMENT;
@@ -12,7 +13,7 @@
"]" return RBRACKET;
"+" return ONEORMORE;
"." return ENDCLAUSE;
-[\n\r\f] /* ignore end of line */
+[\n\r\f] yylineno ++;
[ \t]+ /* ignore whitespace */
. return INVALID;
%%
Modified: redbutton-author/trunk/ccc.y
===================================================================
--- redbutton-author/trunk/ccc.y 2007-08-22 13:32:05 UTC (rev 330)
+++ redbutton-author/trunk/ccc.y 2007-08-22 15:32:46 UTC (rev 331)
@@ -4,10 +4,13 @@
#define YYSTYPE char *
+/* input line we are currently parsing */
+int yylineno = 1;
+
void
yyerror(const char *str)
{
- fprintf(stderr, "yyerror: %s\n", str);
+ fprintf(stderr, "Error: %s at line %d\n", str, yylineno);
}
int
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-08-22 13:32:08
|
Revision: 330
http://redbutton.svn.sourceforge.net/redbutton/?rev=330&view=rev
Author: skilvington
Date: 2007-08-22 06:32:05 -0700 (Wed, 22 Aug 2007)
Log Message:
-----------
where to set and/or flag
Modified Paths:
--------------
redbutton-author/trunk/ccc.y
Modified: redbutton-author/trunk/ccc.y
===================================================================
--- redbutton-author/trunk/ccc.y 2007-08-22 13:26:22 UTC (rev 329)
+++ redbutton-author/trunk/ccc.y 2007-08-22 13:32:05 UTC (rev 330)
@@ -54,8 +54,14 @@
definition:
and_items
+ {
+ printf("AND-");
+ }
|
or_items
+ {
+ printf("OR-");
+ }
;
and_items:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-08-22 13:26:27
|
Revision: 329
http://redbutton.svn.sourceforge.net/redbutton/?rev=329&view=rev
Author: skilvington
Date: 2007-08-22 06:26:22 -0700 (Wed, 22 Aug 2007)
Log Message:
-----------
something else to clean
Modified Paths:
--------------
redbutton-author/trunk/Makefile
Modified: redbutton-author/trunk/Makefile
===================================================================
--- redbutton-author/trunk/Makefile 2007-08-22 13:19:38 UTC (rev 328)
+++ redbutton-author/trunk/Makefile 2007-08-22 13:26:22 UTC (rev 329)
@@ -27,7 +27,7 @@
install -m 755 mhegc ${DESTDIR}/bin
clean:
- rm -f mhegc *.o core
+ rm -f mhegc ccc *.o core
tar:
make clean
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-08-22 13:19:39
|
Revision: 328
http://redbutton.svn.sourceforge.net/redbutton/?rev=328&view=rev
Author: skilvington
Date: 2007-08-22 06:19:38 -0700 (Wed, 22 Aug 2007)
Log Message:
-----------
import the yacc grammar compiler
Added Paths:
-----------
redbutton-author/trunk/Makefile
redbutton-author/trunk/ccc.l
redbutton-author/trunk/ccc.y
Added: redbutton-author/trunk/Makefile
===================================================================
--- redbutton-author/trunk/Makefile (rev 0)
+++ redbutton-author/trunk/Makefile 2007-08-22 13:19:38 UTC (rev 328)
@@ -0,0 +1,35 @@
+CC=gcc
+CFLAGS=-Wall -O2
+
+LEX=lex
+YACC=yacc
+
+DESTDIR=/usr/local
+
+OBJS= mhegc.o \
+ token.o \
+ utils.o
+
+TARDIR=`basename ${PWD}`
+
+ccc: ccc.y ccc.l
+ ${LEX} -i ccc.l
+ ${YACC} -d ccc.y
+ ${CC} ${CFLAGS} -o ccc lex.yy.c y.tab.c
+
+mhegc: ${OBJS}
+ ${CC} ${CFLAGS} -o mhegc ${OBJS} ${LIBS}
+
+.c.o:
+ ${CC} ${CFLAGS} -c $<
+
+install: mhegc
+ install -m 755 mhegc ${DESTDIR}/bin
+
+clean:
+ rm -f mhegc *.o core
+
+tar:
+ make clean
+ (cd ..; tar zcvf ${TARDIR}.tar.gz --exclude .svn ${TARDIR})
+
Added: redbutton-author/trunk/ccc.l
===================================================================
--- redbutton-author/trunk/ccc.l (rev 0)
+++ redbutton-author/trunk/ccc.l 2007-08-22 13:19:38 UTC (rev 328)
@@ -0,0 +1,18 @@
+%{
+#include <string.h>
+#include "y.tab.h"
+%}
+%%
+\/\/[^\n\r\f]* return COMMENT;
+\"[^"]*\" yylval = strdup(yytext); return LITERAL;
+[a-z][a-z0-9]* yylval = strdup(yytext); return IDENTIFIER;
+"::=" return DEFINEDAS;
+"|" return ALTERNATIVE;
+"[" return LBRACKET;
+"]" return RBRACKET;
+"+" return ONEORMORE;
+"." return ENDCLAUSE;
+[\n\r\f] /* ignore end of line */
+[ \t]+ /* ignore whitespace */
+. return INVALID;
+%%
Added: redbutton-author/trunk/ccc.y
===================================================================
--- redbutton-author/trunk/ccc.y (rev 0)
+++ redbutton-author/trunk/ccc.y 2007-08-22 13:19:38 UTC (rev 328)
@@ -0,0 +1,94 @@
+%{
+#include <stdio.h>
+#include <string.h>
+
+#define YYSTYPE char *
+
+void
+yyerror(const char *str)
+{
+ fprintf(stderr, "yyerror: %s\n", str);
+}
+
+int
+yywrap(void)
+{
+ return 1;
+}
+
+int
+main(void)
+{
+ yyparse();
+
+ return 0;
+}
+
+%}
+
+%token COMMENT
+%token LITERAL
+%token IDENTIFIER
+%token DEFINEDAS
+%token ALTERNATIVE
+%token LBRACKET
+%token RBRACKET
+%token ONEORMORE
+%token ENDCLAUSE
+%token INVALID
+
+%%
+clauses:
+ |
+ clauses clause
+ ;
+
+clause:
+ COMMENT
+ |
+ IDENTIFIER DEFINEDAS definition ENDCLAUSE
+ {
+ printf("DEFINE:'%s'\n", $1);
+ }
+ ;
+
+definition:
+ and_items
+ |
+ or_items
+ ;
+
+and_items:
+ item
+ |
+ and_items item
+ ;
+
+or_items:
+ item ALTERNATIVE item
+ |
+ or_items ALTERNATIVE item
+ ;
+
+item:
+ LITERAL
+ {
+ printf("LITERAL:'%s'\n", $1);
+ }
+ |
+ IDENTIFIER
+ {
+ printf("IDENTIFIER:'%s'\n", $1);
+ }
+ |
+ LBRACKET IDENTIFIER RBRACKET
+ {
+ printf("[IDENTIFIER]:'%s'\n", $2);
+ }
+ |
+ IDENTIFIER ONEORMORE
+ {
+ printf("IDENTIFIER+:'%s'\n", $1);
+ }
+ ;
+%%
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-08-22 13:17:51
|
Revision: 327
http://redbutton.svn.sourceforge.net/redbutton/?rev=327&view=rev
Author: skilvington
Date: 2007-08-22 06:17:47 -0700 (Wed, 22 Aug 2007)
Log Message:
-----------
another OCR error
Modified Paths:
--------------
redbutton-author/trunk/grammar
Modified: redbutton-author/trunk/grammar
===================================================================
--- redbutton-author/trunk/grammar 2007-08-21 18:57:48 UTC (rev 326)
+++ redbutton-author/trunk/grammar 2007-08-22 13:17:47 UTC (rev 327)
@@ -578,7 +578,7 @@
EllipseHeight StartAngle ArcAngle ")" .
DrawLine ::= ":DrawLine" "(" Target X1 Y1 X2 Y2 ")" .
DrawOval ::= ":DrawOval" "(" Target X Y EllipseWidth
- EllipseHeight")" .
+ EllipseHeight ")" .
DrawPolygon ::= ":DrawPolygon" "(" Target PointList ")" .
DrawPolyline ::= ":DrawPolyline" "(" Target PointList ")" .
DrawRectangle ::= ":DrawRectangle" "(" Target X1 Y1 X2 Y2
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-08-21 18:57:49
|
Revision: 326
http://redbutton.svn.sourceforge.net/redbutton/?rev=326&view=rev
Author: skilvington
Date: 2007-08-21 11:57:48 -0700 (Tue, 21 Aug 2007)
Log Message:
-----------
fix even more OCR errors
Modified Paths:
--------------
redbutton-author/trunk/grammar
Modified: redbutton-author/trunk/grammar
===================================================================
--- redbutton-author/trunk/grammar 2007-08-21 16:32:30 UTC (rev 325)
+++ redbutton-author/trunk/grammar 2007-08-21 18:57:48 UTC (rev 326)
@@ -55,7 +55,7 @@
ApplicationClass ::= "{:Application" Group
[OnSpawnCloseDown] [OnRestart]
- [ DefaultAttributes] "}" .
+ [DefaultAttributes] "}" .
OnSpawnCloseDown ::= ":OnSpawnCloseDown" ActionClass .
OnRestart ::= ":OnRestart" ActionClass .
DefaultAttributes ::= DefaultAttribute+ .
@@ -138,7 +138,7 @@
| "StreamEvent" | "StreamPlaying"
| "StreamStopped" | "CounterTrigger"
| "HighlightOn" | "HighlightOff"
- | "CursorEnter" | "Cursorleave"
+ | "CursorEnter" | "CursorLeave"
| "IsSelected" | "IsDeselected"
| "TestEvent" | "FirstItemPresented"
| "LastItemPresented" | "HeadItems"
@@ -192,12 +192,12 @@
// B.4.14 Variable Class
Variable ::= Ingredient OriginalValue .
-OriginalValue :: =":OrigValue" OriginalValueBody .
+OriginalValue ::= ":OrigValue" OriginalValueBody .
OriginalValueBody ::= BOOLEAN | INTEGER | OctetString
| ObjectReferenceValue
| ContentReferenceValue .
ObjectReferenceValue ::= ":ObjectRef" ObjectReference .
-ContentReferenceValue ::= "ContentRef" ContentReference .
+ContentReferenceValue ::= ":ContentRef" ContentReference .
// B.4.15 BooleanVariable Class
@@ -289,12 +289,12 @@
[OriginalLineWidth]
[OriginalLineStyle]
[OriginalRefLineColour]
- [OriginalRefFiIIColour] .
+ [OriginalRefFillColour] .
BorderedBoundingBox ::= ":BBBox" BOOLEAN .
OriginalLineWidth ::= ":OrigLineWidth" INTEGER .
OriginalLineStyle ::= ":OrigLineStyle" INTEGER .
-OriginalRefLineColour ::= ":OrigRefLineCoIour" Colour .
-OriginalRefFilIColour ::= ":OrigRefFillColour" Colour .
+OriginalRefLineColour ::= ":OrigRefLineColour" Colour .
+OriginalRefFillColour ::= ":OrigRefFillColour" Colour .
// B.4.27 Rectangle Class
@@ -813,7 +813,7 @@
NewLineStyle ::= GenericInteger .
NewLineWidth ::= GenericInteger .
NewOverwriteMode ::= GenericBoolean .
-NewPaIetteRef ::= GenericObjectReference .
+NewPaletteRef ::= GenericObjectReference .
NewPortion ::= GenericInteger .
NewReferencedContent ::= ":NewRefContent" "(" GenericContentReference
[NewContentSize]
@@ -827,7 +827,7 @@
| NewGenericContentReference .
NewVolume ::= GenericInteger .
NewXPosition ::= GenericInteger .
-NewY Position ::= GenericInteger .
+NewYPosition ::= GenericInteger .
Numerator ::= GenericInteger .
OpenSucceeded ::= ObjectReference .
Operator ::= GenericInteger .
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-08-21 16:33:47
|
Revision: 325
http://redbutton.svn.sourceforge.net/redbutton/?rev=325&view=rev
Author: skilvington
Date: 2007-08-21 09:32:30 -0700 (Tue, 21 Aug 2007)
Log Message:
-----------
fix more OCR errors
Modified Paths:
--------------
redbutton-author/trunk/grammar
Modified: redbutton-author/trunk/grammar
===================================================================
--- redbutton-author/trunk/grammar 2007-08-21 16:28:35 UTC (rev 324)
+++ redbutton-author/trunk/grammar 2007-08-21 16:32:30 UTC (rev 325)
@@ -380,7 +380,7 @@
MaxValue ::= ":MaxValue" INTEGER .
MinValue ::= ":MinValue" INTEGER .
InitialValue ::= ":InitialValue" INTEGER .
-InitialPortion ::= "InitialPortion" INTEGER .
+InitialPortion ::= ":InitialPortion" INTEGER .
StepSize ::= ":StepSize" INTEGER .
SliderStyle ::= ":SliderStyle" SliderStyleEnum .
SliderStyleEnum ::= "normal" | "thermometer" | "proportional" .
@@ -912,7 +912,7 @@
GenericBoolean ::= BOOLEAN | IndirectReference .
-GenericOctetString ::= OctetString I IndirectReference .
+GenericOctetString ::= OctetString | IndirectReference .
OctetString ::= STRING | QPRINTABLE | BASE64 .
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-08-21 16:29:26
|
Revision: 324
http://redbutton.svn.sourceforge.net/redbutton/?rev=324&view=rev
Author: skilvington
Date: 2007-08-21 09:28:35 -0700 (Tue, 21 Aug 2007)
Log Message:
-----------
fix OCR errors
Modified Paths:
--------------
redbutton-author/trunk/grammar
Modified: redbutton-author/trunk/grammar
===================================================================
--- redbutton-author/trunk/grammar 2007-08-21 16:20:27 UTC (rev 323)
+++ redbutton-author/trunk/grammar 2007-08-21 16:28:35 UTC (rev 324)
@@ -1,4 +1,5 @@
// MHEG5 Textual Format
+// includes UK MHEG Profile additions
// B.4.1 Root Class
@@ -283,7 +284,7 @@
// B.4.26 LineArt Class
-LineArtCIass ::= "{:LineArt" LineArtBody "}" .
+LineArtClass ::= "{:LineArt" LineArtBody "}" .
LineArtBody ::= Visible [BorderedBoundingBox]
[OriginalLineWidth]
[OriginalLineStyle]
@@ -333,7 +334,7 @@
StreamClass ::= "{:Stream" Presentable [Multiplex]
[Storage] [Looping] "}" .
Multiplex ::= ":Multiplex" "(" StreamComponent+ ")" .
-StreamComponent ::= AudioClass | VideoClass | RTGraphicsCIass .
+StreamComponent ::= AudioClass | VideoClass | RTGraphicsClass .
Storage ::= ":Storage" StorageEnum .
StorageEnum ::= "memory" | "stream" .
Looping ::= ":Looping" INTEGER .
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-08-21 16:20:31
|
Revision: 323
http://redbutton.svn.sourceforge.net/redbutton/?rev=323&view=rev
Author: skilvington
Date: 2007-08-21 09:20:27 -0700 (Tue, 21 Aug 2007)
Log Message:
-----------
import grammar file for MHEG5 text form
Added Paths:
-----------
redbutton-author/
redbutton-author/branches/
redbutton-author/tags/
redbutton-author/trunk/
redbutton-author/trunk/grammar
Added: redbutton-author/trunk/grammar
===================================================================
--- redbutton-author/trunk/grammar (rev 0)
+++ redbutton-author/trunk/grammar 2007-08-21 16:20:27 UTC (rev 323)
@@ -0,0 +1,924 @@
+// MHEG5 Textual Format
+
+// B.4.1 Root Class
+
+Root ::= ObjectIdentifier .
+ObjectIdentifier ::= ObjectReference .
+
+
+// B.4.2 Group Class
+
+Group ::= Root [StandardIdentifier]
+ [StandardVersion] [ObjectInformation]
+ [OnStartUp] [OnCloseDown]
+ [OriginalGroupCachePriority] [Items] .
+StandardIdentifier ::= ":StdID" JointIsoItuIdentifier
+ MHEGStandardIdentifier .
+JointIsoItuIdentifier ::= INTEGER .
+MHEGStandardIdentifier ::= INTEGER .
+StandardVersion ::= ":StdVersion" INTEGER .
+ObjectInformation ::= ":ObjectInfo" OctetString .
+OnStartUp ::= ":OnStartUp" ActionClass .
+OnCloseDown ::= ":OnCloseDown" ActionClass .
+OriginalGroupCachePriority ::= ":OrigGCPriority" INTEGER .
+Items ::= ":Items" "(" GroupItem+ ")" .
+GroupItem ::= ResidentProgramClass |
+ RemoteProgramClass |
+ InterchangedProgramClass |
+ PaletteClass |
+ FontClass |
+ CursorShapeClass |
+ BooleanVariableClass |
+ IntegerVariableClass |
+ OctetStringVariableClass |
+ ObjectRefVariableClass |
+ ContentRefVariableClass |
+ LinkClass |
+ StreamClass |
+ BitmapClass |
+ LineArtClass |
+ DynamicLineArtClass |
+ RectangleClass |
+ HotspotClass |
+ SwitchButtonClass |
+ PushButtonClass |
+ TextClass |
+ EntryFieldClass |
+ HyperTextClass |
+ SliderClass |
+ TokenGroupClass |
+ ListGroupClass .
+
+
+// B.4.3 Application Class
+
+ApplicationClass ::= "{:Application" Group
+ [OnSpawnCloseDown] [OnRestart]
+ [ DefaultAttributes] "}" .
+OnSpawnCloseDown ::= ":OnSpawnCloseDown" ActionClass .
+OnRestart ::= ":OnRestart" ActionClass .
+DefaultAttributes ::= DefaultAttribute+ .
+DefaultAttribute ::= CharacterSet | BackgroundColour
+ | TextContentHook
+ | TextColour | Font
+ | FontAttributes
+ | InterchangedProgramContentHook
+ | StreamContentHook
+ | BitmapContentHook
+ | LineArtContentHook | ButtonRefColour
+ | HighlightRefColour | SliderRefColour .
+CharacterSet ::= ":CharacterSet" INTEGER .
+BackgroundColour ::= ":BackgroundColour" Colour .
+TextContentHook ::= ":TextCHook" INTEGER .
+TextColour ::= ":TextColour" Colour .
+Font ::= ":Font" FontBody .
+FontBody ::= DirectFont | IndirectFont .
+DirectFont ::= OctetString .
+IndirectFont ::= ObjectReference .
+FontAttributes ::= ":FontAttributes" OctetString .
+InterchangedProgramContentHook ::= ":InterchgPrgCHook" INTEGER .
+StreamContentHook ::= ":StreamCHook" INTEGER .
+BitmapContentHook ::= ":BitmapCHook" INTEGER .
+LineArtContentHook ::= ":LineArtCHook" INTEGER .
+ButtonRefColour ::= ":ButtonRefColour" Colour .
+HighlightRefColour ::= ":HighlightRefColour" Colour .
+SliderRefColour ::= ":SliderRefColour" Colour .
+
+
+// B.4.4 Scene Class
+
+SceneClass ::= "{:Scene" Group InputEventRegister
+ SceneCoordinateSystem [AspectRatio]
+ [MovingCursor] [NextScenes] "}" .
+InputEventRegister ::= ":InputEventReg" INTEGER .
+SceneCoordinateSvstem ::= ":SceneCS" XScene YScene .
+XScene ::= INTEGER .
+YScene ::= INTEGER .
+AspectRatio ::= ":AspectRatio" Width Height .
+Width ::= INTEGER .
+Height ::= INTEGER .
+MovingCursor ::= ":MovingCursor" BOOLEAN .
+NextScenes ::= ":NextScenes" "(" NextScene+ ")" .
+NextScene ::= "(" SceneRef SceneWeight ")" .
+SceneRef ::= OctetString .
+SceneWeight ::= INTEGER .
+
+
+// B.4.5 Ingredient Class
+
+Ingredient ::= Root [InitiallyActive] [ContentHook]
+ [OriginalContent] [Shared] .
+InitiallyActive ::= ":InitiallyActive" BOOLEAN .
+ContentHook ::= ":CHook" INTEGER .
+OriginalContent ::= ":OrigContent" ContentBody .
+ContentBody ::= IncludedContent | ReferencedContent .
+IncludedContent ::= OctetString .
+ReferencedContent ::= ":ContentRef" "(" ContentReference
+ [ContentSize] [ContentCachePriority]
+ ")" .
+ContentSize ::= ":ContentSize" INTEGER .
+ContentCachePriority ::= ":CCPriority" INTEGER .
+Shared ::= ":Shared" BOOLEAN .
+
+
+// B.4.6 Link Class
+
+LinkClass ::= "{:Link" Ingredient LinkCondition
+ LinkEffect "}" .
+LinkCondition ::= EventSource EventType [EventData] .
+EventSource ::= ":EventSource" ObjectReference .
+EventType ::= ":EventType" EventTypeEnum .
+EventTypeEnum ::= "IsAvailable" | "ContentAvailable"
+ | "IsDeleted" | "IsRunning"
+ | "IsStopped" | "UserInput"
+ | "AnchorFired" | "TimerFired"
+ | "AsynchStopped" | "InteractionCompleted"
+ | "TokenMovedFrom" | "TokenMovedTo"
+ | "StreamEvent" | "StreamPlaying"
+ | "StreamStopped" | "CounterTrigger"
+ | "HighlightOn" | "HighlightOff"
+ | "CursorEnter" | "Cursorleave"
+ | "IsSelected" | "IsDeselected"
+ | "TestEvent" | "FirstItemPresented"
+ | "LastItemPresented" | "HeadItems"
+ | "TailItems" | "ItemSelected"
+ | "ItemDeselected" | "EntryFieldFull"
+ | "EngineEvent" | "FocusMoved" | "SliderValueChanged" .
+EventData ::= ":EventData" EventDataBody .
+EventDataBody ::= OctetString | BOOLEAN | INTEGER .
+LinkEffect ::= ":LinkEffect" ActionClass .
+
+
+// B.4.7 Program Class
+
+Program ::= Ingredient Name [InitiallyAvailable] .
+Name ::= ":Name" OctetString .
+InitiallyAvailable ::= ":InitiallyAvailable" BOOLEAN .
+
+
+// B.4.8 ResidentProgram Class
+
+ResidentProgramClass ::= "{:ResidentPrg" Program "}" .
+
+
+// B.4.9 RemoteProgram Class
+
+RemoteProgramClass ::= "{:RemotePrg" Program
+ [ProgramConnectionTag] "}" .
+ProgramConnectionTag ::= ":ConnectionTag" INTEGER .
+
+
+// B.4.10 InterchangedProgram Class
+
+InterchangedProgramClass ::= "{:InterchgPrg" Program "}" .
+
+
+// B.4.11 Palette Class
+
+PaletteClass ::= "{:Palette" Ingredient "}" .
+
+
+// B.4.12 Font Class
+
+FontClass ::= "{:Font" Ingredient "}" .
+
+
+// B.4.13 CursorShape Class
+
+CursorShapeClass ::= "{:CursorShape" Ingredient "}" .
+
+
+// B.4.14 Variable Class
+
+Variable ::= Ingredient OriginalValue .
+OriginalValue :: =":OrigValue" OriginalValueBody .
+OriginalValueBody ::= BOOLEAN | INTEGER | OctetString
+ | ObjectReferenceValue
+ | ContentReferenceValue .
+ObjectReferenceValue ::= ":ObjectRef" ObjectReference .
+ContentReferenceValue ::= "ContentRef" ContentReference .
+
+
+// B.4.15 BooleanVariable Class
+
+BooleanVariableClass ::= "{:BooleanVar" Variable "}" .
+
+
+// B.4.16 IntegerVariable Class
+
+IntegerVariableClass ::= "{:IntegerVar" Variable "}" .
+
+
+// B.4.17 OctetStringVariable Class
+
+OctetStringVariableClass ::= "{:OStringVar" Variable "}" .
+
+
+// B.4.18 ObjectRefVariable Class
+
+ObjectRefVariableClass ::= "{:ObjectRefVar" Variable "}" .
+
+
+// B.4.19 ContentRefVariable Class
+
+ContentRefVariableClass ::= "{:ContentRefVar" Variable "}" .
+
+
+// B.4.20 Presentable Class
+
+Presentable ::= Ingredient .
+
+
+// B.4.21 TokenManager Class
+
+TokenManager ::= [MovementTable] .
+MovementTable ::= ":MovementTable" "(" Movement+ ")" .
+Movement ::= "(" TargetElement+ ")" .
+TargetElement ::= INTEGER .
+
+
+// B.4.22 TokenGroup Class
+
+TokenGroupClass ::= "{:TokenGroup" TokenGroupBody "}" .
+TokenGroupBody ::= Presentable TokenManager [TokenGroupItems]
+ [NoTokenActionSlots] .
+TokenGroupItems ::= "{:TokenGroupItems" "(" TokenGroupItem+ ")" .
+TokenGroupItem ::= "(" AVisible [ActionSlots] ")" .
+AVisible ::= ObjectReference .
+ActionSlots ::= ":ActionSlots" "(" ActionSlot+ ")" .
+ActionSlot ::= ActionClass | Null .
+NoTokenActionSlots ::= ":NoTokenActionSlots" "(" ActionSlot+ ")" .
+
+
+// B.4.23 ListGroup Class
+
+ListGroupClass ::= "{:ListGroup" TokenGroupBody
+ Positions [WrapAround]
+ [MultipleSelection] "}" .
+Positions ::= ":Positions" "(" Position+ ")" .
+Position ::= "(" XYPosition ")" .
+WrapAround ::= ":WrapAround" BOOLEAN .
+MultipleSelection ::= ":MultipleSelection" BOOLEAN .
+
+
+// B.4.24 Visible Class
+
+Visible ::= Presentable OriginalBoxSize
+ [OriginalPosition] [OriginalPaletteRef] .
+OriginalBoxSize ::= ":OrigBoxSize" BoxSize .
+BoxSize ::= XLength YLength .
+XLength ::= INTEGER .
+YLength ::= INTEGER .
+OriginalPosition ::= ":OrigPosition" XYPosition .
+OriginalPaletteRef ::= ":OrigPaletteRef" ObjectReference .
+
+
+// B.4.25 Bitmap Class
+
+BitmapClass ::= "{:Bitmap" Visible [Tiling]
+ [OriginalTransparency] "}" .
+Tiling ::= ":Tiling" BOOLEAN .
+OriginalTransparency ::= ":OrigTransparency" INTEGER .
+
+
+// B.4.26 LineArt Class
+
+LineArtCIass ::= "{:LineArt" LineArtBody "}" .
+LineArtBody ::= Visible [BorderedBoundingBox]
+ [OriginalLineWidth]
+ [OriginalLineStyle]
+ [OriginalRefLineColour]
+ [OriginalRefFiIIColour] .
+BorderedBoundingBox ::= ":BBBox" BOOLEAN .
+OriginalLineWidth ::= ":OrigLineWidth" INTEGER .
+OriginalLineStyle ::= ":OrigLineStyle" INTEGER .
+OriginalRefLineColour ::= ":OrigRefLineCoIour" Colour .
+OriginalRefFilIColour ::= ":OrigRefFillColour" Colour .
+
+
+// B.4.27 Rectangle Class
+
+RectangleClass ::= "{:Rectangle" LineArtBody "}" .
+
+
+// B.4.28 DynamicLineArt Class
+
+DynamicLineArtClass ::= "{:DynamicLineArt" LineArtBody "}" .
+
+
+// B.4.29 Text Cfass
+
+TextClass ::= "{:Text" TextBody "}" .
+TextBody ::= Visible [OriginalFont] [FontAttributes]
+ [TextColour] [BackgroundColour]
+ [CharacterSet]
+ [HorizontalJustification]
+ [VerticalJustification]
+ [LineOrientation] [StartCorner]
+ [TextWrapping] .
+OriginalFont ::= ":OrigFont" FontBody .
+HorizontalJustification ::= ":HJustification" JustificationEnum .
+JustificationEnum ::= "start" | "end" | "centre" | "justified" .
+VerticalJustification ::= ":VJustification" JustificationEnum .
+LineOrientation ::= ":LineOrientation" LineOrientationEnum .
+LineOrientationEnum ::= "vertical" | "horizontal" .
+StartCorner ::= ":StartCorner" StartCornerEnum .
+StartCornerEnum ::= "upper-left" | "upper-right"
+ | "lower-left" | "lower-right" .
+TextWrapping ::= ":TextWrapping" BOOLEAN .
+
+
+// B.4.30 Stream Class
+
+StreamClass ::= "{:Stream" Presentable [Multiplex]
+ [Storage] [Looping] "}" .
+Multiplex ::= ":Multiplex" "(" StreamComponent+ ")" .
+StreamComponent ::= AudioClass | VideoClass | RTGraphicsCIass .
+Storage ::= ":Storage" StorageEnum .
+StorageEnum ::= "memory" | "stream" .
+Looping ::= ":Looping" INTEGER .
+
+
+// B.4.31 Audio Class
+
+AudioClass ::= "{:Audio" Presentable ComponentTag
+ [OriginalVolume] "}" .
+ComponentTag ::= ":ComponentTag" INTEGER .
+OriginalVolume ::= ":OrigVolume" INTEGER .
+
+
+// B.4.32 Video Class
+
+VideoClass ::= "{:Video" Visible ComponentTag
+ [Termination] "}" .
+Termination ::= ":Termination" TerminationEnum .
+TerminationEnum ::= "freeze" | "disappear" .
+
+
+// B.4.33 RTGraphics Class
+
+RTGraphicsClass ::= "{:RTGraphics" Visible ComponentTag
+ [Termination] "}" .
+
+
+// B.4.34 Interactible Class
+
+Interactible ::= [EngineResp] [HighlightRefColour] .
+EngineResp ::= ":EngineResp" BOOLEAN .
+
+
+// B.4.35 Slider Class
+
+SliderClass ::= "{:Slider" Visible Interactible
+ Orientation MaxValue [MinValue]
+ [InitialValue] [InitialPortion]
+ [StepSize] [SliderStyle]
+ [SliderRefColour] "}" .
+Orientation ::= ":Orientation" OrientationEnum .
+OrientationEnum ::= "left" | "right" | "up" | "down" .
+MaxValue ::= ":MaxValue" INTEGER .
+MinValue ::= ":MinValue" INTEGER .
+InitialValue ::= ":InitialValue" INTEGER .
+InitialPortion ::= "InitialPortion" INTEGER .
+StepSize ::= ":StepSize" INTEGER .
+SliderStyle ::= ":SliderStyle" SliderStyleEnum .
+SliderStyleEnum ::= "normal" | "thermometer" | "proportional" .
+
+
+// B.4.36 EntryField Class
+
+EntryFieldClass ::= "{:EntryField" TextBody Interactible
+ [InputType] [CharList]
+ [ObscuredInput] [MaxLength] "}" .
+InputType ::= ":InputType" InputTypeEnum .
+InputTypeEnum ::= "alpha" | "numeric" | "any" | "listed" .
+CharList ::= ":CharList" OctetString .
+ObscuredInput ::= ":ObscuredInput" BOOLEAN .
+MaxLength ::= ":MaxLength" INTEGER .
+
+
+// B.4.37 HyperText Class
+
+HyperTextClass ::= "{:HyperText" TextBody Interactible
+ "}" .
+
+
+// B.4.38 Button Class
+
+Button ::= Visible Interactible [ButtonRefColour] .
+
+
+// B.4.39 Hotspot Class
+
+HotspotClass ::= "{:Hotspot" Button "}" .
+
+
+// B.4.40 PushButton Class
+
+PushButtonClass ::= "{:PushButton" PushButtonBody "}" .
+PushButtonBody ::= Button [OriginalLabel] [CharacterSet] .
+OriginalLabel ::= ":OrigLabel" OctetString .
+
+
+// B.4.41 SwitchButton Class
+
+SwitchButtonClass ::= "{:SwitchButton" PushButtonBody
+ ButtonStyle "}" .
+ButtonStyle ::= ":ButtonStyle" ButtonStyleEnum .
+ButtonStyleEnum ::= "pushbutton" | "radiobutton" | "checkbox" .
+
+
+// B.4.42 Action Class
+
+ActionClass ::= "(" ElementaryAction+ ")" .
+ElementaryAction ::= Activate
+ | Add
+ | AddItem
+ | Append
+ | BringToFront
+ | Call
+ | CallActionSlot
+ | Clear
+ | Clone
+ | CloseConnection
+ | Deactivate
+ | DelItem
+ | Deselect
+ | DeselectItem
+ | Divide
+ | DrawArc
+ | DrawLine
+ | DrawOval
+ | DrawPolygon
+ | DrawPolyline
+ | DrawRectangle
+ | DrawSector
+ | Fork
+ | GetAvailabilityStatus
+ | GetBoxSize
+ | GetCellItem
+ | GetCursorPosition
+ | GetEngineSupport
+ | GetEntryPoint
+ | GetFillColour
+ | GetFirstItem
+ | GetHighlightStatus
+ | GetInteractionStatus
+ | GetItemStatus
+ | GetLabel
+ | GetLastAnchorFired
+ | GetLineColour
+ | GetLineStyle
+ | GetLineWidth
+ | GetListItem
+ | GetListSize
+ | GetOverwriteMode
+ | GetPortion
+ | GetPosition
+ | GetRunningStatus
+ | GetSelectionStatus
+ | GetSliderValue
+ | GetTextContent
+ | GetTextData
+ | GetTokenPosition
+ | GetVolume
+ | Launch
+ | LockScreen
+ | Modulo
+ | Move
+ | MoveTo
+ | Multiply
+ | OpenConnection
+ | Preload
+ | PutBefore
+ | PutBehind
+ | Quit
+ | ReadPersistent
+ | Run
+ | ScaleBitmap
+ | ScaleVideo
+ | ScrollItems
+ | Select
+ | SelectItem
+ | SendEvent
+ | SendToBack
+ | SetBoxSize
+ | SetCachePriority
+ | SetCounterEndPosition
+ | SetCounterPosition
+ | SetCounterTrigger
+ | SetCursorPosition
+ | SetCursorShape
+ | SetData
+ | SetEntryPoint
+ | SetFillColour
+ | SetFirstItem
+ | SetFontRef
+ | SetHighlightStatus
+ | SetInteractionStatus
+ | SetLabel
+ | SetLineColour
+ | SetLineStyle
+ | SetLineWidth
+ | SetOverwriteMode
+ | SetPaletteRef
+ | SetPortion
+ | SetPosition
+ | SetSliderValue
+ | SetSpeed
+ | SetTimer
+ | SetTransparency
+ | SetVariable
+ | SetVolume
+ | Spawn
+ | Step
+ | Stop
+ | StorePersistent
+ | Subtract
+ | TestVariable
+ | Toggle
+ | ToggleItem
+ | TransitionTo
+ | Unload
+ | UnlockScreen
+ | SetBackgroundColour
+ | SetCellPosition
+ | SetInputReg
+ | SetTextColour
+ | SetFontAttributes
+ | SetVideoDecodeOffset
+ | GetVideoDecodeOffset
+ | GetFocusPosition
+ | SetFocusPosition
+ | SetBitmapDecodeOffset
+ | GetBitmapDecodeOffset
+ | SetSliderParameters .
+
+Activate ::= ":Activate" "(" Target ")" .
+Add ::= ":Add" "(" Target Value ")" .
+AddItem ::= ":AddItem" "(" Target ItemIndex
+ VisibleReference ")" .
+Append ::= ":Append" "(" Target AppendValue ")" .
+BringToFront ::= ":BringToFront" "(" Target ")" .
+Call ::= ":Call" "(" Target CallSucceeded
+ [Parameters] ")" .
+CallActionSlot ::= ":CallActionSlot" "(" Target Index ")" .
+Clear ::= ":Clear" "(" Target ")" .
+Clone ::= ":Clone" "(" Target CloneRefVar ")" .
+CloseConnection ::= ":CloseConnection" "(" Target
+ ConnectionTag ")" .
+Deactivate ::= ":Deactivate" "(" Target ")" .
+DelItem ::= ":DelItem" "(" Target VisibleReference
+ ")" .
+Deselect ::= ":Deselect" "(" Target ")" .
+DeselectItem ::= ":DeselectItem" "(" Target ItemIndex ")" .
+Divide ::= ":Divide" "(" Target Value ")" .
+DrawArc ::= ":DrawArc" "(" Target X Y EllipseWidth
+ EllipseHeight StartAngle ArcAngle ")" .
+DrawLine ::= ":DrawLine" "(" Target X1 Y1 X2 Y2 ")" .
+DrawOval ::= ":DrawOval" "(" Target X Y EllipseWidth
+ EllipseHeight")" .
+DrawPolygon ::= ":DrawPolygon" "(" Target PointList ")" .
+DrawPolyline ::= ":DrawPolyline" "(" Target PointList ")" .
+DrawRectangle ::= ":DrawRectangle" "(" Target X1 Y1 X2 Y2
+ ")" .
+DrawSector ::= ":DrawSector" "(" Target X Y EllipseWidth
+ EllipseHeight StartAngle ArcAngle")" .
+Fork ::= ":Fork" "(" Target ForkSucceeded
+ [Parameters] ")" .
+GetAvailabilityStatus ::= ":GetAvailabilityStatus" "(" Target
+ AvailabilityStatusVar")" .
+GetBoxSize ::= ":GetBoxSize" "(" Target XBoxSizeVar
+ YBoxSizeVar")" .
+GetCellItem ::= ":GetCellItem" "(" Target CellIndex
+ ItemRefVar ")" .
+GetCursorPosition ::= ":GetCursorPosition" "(" Target XOut YOut
+ ")" .
+GetEngineSupport ::= ":GetEngineSupport" "(" Target Feature
+ Answer ")" .
+GetEntryPoint ::= ":GetEntryPoint" "(" Target EntryPointVar
+ ")" .
+GetFillColour ::= ":GetFillColour" "(" Target FillColourVar
+ ")" .
+GetFirstItem ::= ":GetFirstItem" "(" Target FirstItemVar
+ ")" .
+GetHighlightStatus ::= ":GetHighlightStatus" "(" Target
+ HightlightStatusVar ")" .
+GetInteractionStatus ::= ":GetInteractionStatus" "(" Target
+ InteractionStatusVar ")" .
+GetItemStatus ::= ":GetItemStatus" "(" Target
+ ItemIndex ItemStatusVar ")" .
+GetLabel ::= ":GetLabel" "(" Target LabelVar ")" .
+GetLastAnchorFired ::= ":GetLastAnchorFired" "(" Target
+ LastAnchorFiredVar ")" .
+GetLineColour ::= ":GetLineColour" "(" Target LineColourVar
+ ")" .
+GetLineStyle ::= ":GetLineStyle" "(" Target LineStyleVar
+ ")" .
+GetLineWidth ::= ":GetLineWidth" "(" Target LineWidthVar
+ ")" .
+GetListItem ::= ":GetListItem" "(" Target ItemIndex
+ ItemRefVar ")" .
+GetListSize ::= ":GetListSize" "(" Target SizeVar ")" .
+GetOverwriteMode ::= ":GetOverwriteMode" "(" Target
+ OverwriteModeVar ")" .
+GetPortion ::= ":GetPortion" "(" Target PortionVar ")" .
+GetPosition ::= ":GetPosition" "(" Target XPositionVar
+ YPositionVar ")" .
+GetRunningStatus ::= ":GetRunningStatus" "(" Target
+ RunningStatusVar ")" .
+GetSelectionStatus ::= ":GetSelectionStatus" "(" Target
+ SelectionStatusVar ")" .
+GetSliderValue ::= ":GetSliderValue" "(" Target
+ SliderValueVar ")" .
+GetTextContent ::= ":GetTextContent" "(" Target
+ TextContentVar ")" .
+GetTextData ::= ":GetTextData" "(" Target TextDataVar ")" .
+GetTokenPosition ::= ":GetTokenPosition" "(" Target
+ TokenPositionVar ")" .
+GetVolume ::= ":GetVolume" "(" Target VolumeVar ")" .
+Launch ::= ":Launch" "(" Target ")" .
+LockScreen ::= ":LockScreen" "(" Target ")" .
+Modulo ::= ":Modulo" "(" Target Value ")" .
+Move ::= ":Move" "(" Target MovementIdentifier ")" .
+MoveTo ::= ":MoveTo" "(" Target Index ")" .
+Multiply ::= ":Multiply" "(" Target Value ")" .
+OpenConnection ::= ":OpenConnection" "(" Target OpenSucceeded
+ Protocol Address ConnectionTag ")" .
+Preload ::= ":Preload" "(" Target ")" .
+PutBefore ::= ":PutBefore" "(" Target ReferenceVisible
+ ")" .
+PutBehind ::= ":PutBehind" "(" Target ReferenceVisible
+ ")" .
+Quit ::= ":Quit" "(" Target ")" .
+ReadPersistent ::= ":ReadPersistent" "(" Target ReadSucceeded
+ OutVariables InFileName ")" .
+Run ::= ":Run" "(" Target ")" .
+ScaleBitmap ::= ":ScaleBitmap" "(" Target XScale YScale ")" .
+ScaleVideo ::= ":ScaleVideo" "(" Target XScale YScale ")" .
+ScrollItems ::= ":ScrollItems" "(" Target ItemsToScroll ")" .
+Select ::= ":Select" "(" Target ")" .
+SelectItem ::= ":SelectItem" "(" Target ItemIndex ")" .
+SendEvent ::= ":SendEvent" "(" Target EmulatedEventSource
+ EmulatedEventType [EmulatedEventData]
+ ")" .
+SendToBack ::= ":SendToBack" "(" Target ")" .
+SetBoxSize ::= ":SetBoxSize" "(" Target XNewBoxSize
+ YNewBoxSize ")" .
+SetCachePriority ::= ":SetCachePriority" "(" Target
+ NewCachePriority ")" .
+SetCounterEndPosition ::= ":SetCounterEndPosition" "(" Target
+ NewCounterEndPosition ")" .
+SetCounterPosition ::= ":SetCounterPosition" "(" Target
+ NewCounterPosition ")" .
+SetCounterTrigger ::= ":SetCounterTrigger" "(" Target
+ TriggerIdentifier [NewCounterValue]
+ ")" .
+SetCursorPosition ::= ":SetCursorPosition" "(" Target XCursor
+ YCursor ")" .
+SetCursorShape ::= ":SetCursorShape" "(" Target
+ [NewCursorShape] ")" .
+SetData ::= ":SetData" "(" Target NewContent ")" .
+SetEntryPoint ::= ":SetEntryPoint" "(" Target NewEntryPoint
+ ")" .
+SetFillColour ::= ":SetFillColour" "(" Target [NewColour]
+ ")" .
+SetFirstItem ::= ":SetFirstItem" "(" Target NewFirstItem
+ ")" .
+SetFontRef ::= ":SetFontRef" "(" Target NewFont ")" .
+SetHighlightStatus ::= ":SetHighlightStatus" "(" Target
+ NewHighlightStatus ")" .
+SetInteractionStatus ::= ":SetInteractionStatus" "(" Target
+ NewInteractionStatus ")" .
+SetLabel ::= ":SetLabel" "(" Target NewLabel ")" .
+SetLineColour ::= ":SetLineColour" "(" Target NewColour ")" .
+SetLineStyle ::= ":SetLineStyle" "(" Target NewLineStyle
+ ")" .
+SetLineWidth ::= ":SetLineWidth" "(" Target NewLineWidth
+ ")" .
+SetOverwriteMode ::= ":SetOverwriteMode" "(" Target
+ NewOverwriteMode ")" .
+SetPaletteRef ::= ":SetPaletteRef" "(" Target NewPaletteRef
+ ")" .
+SetPortion ::= ":SetPortion" "(" Target NewPortion ")" .
+SetPosition ::= ":SetPosition" "(" Target NewXPosition
+ NewYPosition ")" .
+SetSliderValue ::= ":SetSliderValue" "(" Target
+ NewSliderValue ")" .
+SetSpeed ::= ":SetSpeed" "(" Target NewSpeed ")" .
+SetTimer ::= ":SetTimer" "(" Target TimerID
+ [TimerValue] [AbsoluteTime] ")" .
+SetTransparency ::= ":SetTransparency" "(" Target
+ NewTransparency ")" .
+SetVariable ::= ":SetVariable" "(" Target
+ NewVariableValue ")" .
+SetVolume ::= ":SetVolume" "(" Target NewVolume ")" .
+Spawn ::= ":Spawn" "(" Target ")" .
+Stop ::= ":Stop" "(" Target ")" .
+Step ::= ":Step" "(" Target NbOfSteps ")" .
+StorePersistent ::= ":StorePersistent" "(" Target
+ StoreSucceeded InVariables OutFileName
+ ")" .
+Subtract ::= ":Subtract" "(" Target Value ")" .
+TestVariable ::= ":TestVariable" "(" Target Operator
+ ComparisonValue ")" .
+Toggle ::= ":Toggle" "(" Target ")" .
+ToggleItem ::= ":ToggleItem" "(" Target ItemIndex ")" .
+TransitionTo ::= ":TransitionTo" "(" Target [ConnectionTag]
+ [TransitionEffect] ")" .
+Unload ::= ":Unload" "(" Target ")" .
+UnlockScreen ::= ":UnlockScreen" "(" Target ")" .
+SetBackgroundColour ::= ":SetBackgroundColour" "(" Target NewColour ")" .
+SetCellPosition ::= ":SetCellPosition" "(" Target Index XPosition YPosition ")" .
+SetInputReg ::= ":SetInputReg" "(" Target GenericInteger ")" .
+SetTextColour ::= ":SetTextColour" "(" Target NewColour ")" .
+SetFontAttributes ::= ":SetFontAttributes" "(" Target GenericOctetString ")" .
+SetVideoDecodeOffset ::= ":SetVideoDecodeOffset" "(" Target NewXOffset NewYOffset ")" .
+GetVideoDecodeOffset ::= ":GetVideoDecodeOffset" "(" Target XOffsetVar YOffsetVar ")" .
+GetFocusPosition ::= ":GetFocusPosition" "(" Target FocusPositionVar ")" .
+SetFocusPosition ::= ":SetFocusPosition" "(" Target NewFocusPosition ")" .
+SetBitmapDecodeOffset ::= ":SetBitmapDecodeOffset" "(" Target NewXOffset NewYOffset ")" .
+GetBitmapDecodeOffset ::= ":GetBitmapDecodeOffset" "(" Target XOffsetVar YOffsetVar ")" .
+SetSliderParameters ::= ":SetSliderParameters" "(" Target NewMinValue NewMaxValue NewStepSize ")" .
+
+
+AbsoluteTime ::= ":AbsoluteTime" GenericBoolean .
+Address ::= GenericOctetString .
+Answer ::= ObjectReference .
+AppendValue ::= GenericOctetString .
+ArcAngle ::= GenericInteger .
+AvailabilityStatusVar ::= ObjectReference .
+CallSucceeded ::= ObjectReference .
+CellIndex ::= GenericInteger .
+CloneRefVar ::= ObjectReference .
+ComparisonValue ::= NewGenericBoolean | NewGenericInteger
+ | NewGenericOctetString
+ | NewGenericObjectReference
+ | NewGenericContentReference .
+ConnectionTag ::= ":ConnectionTag" GenericInteger .
+Denominator ::= GenericInteger .
+EllipseHeight ::= GenericInteger .
+EllipseWidth ::= GenericInteger .
+EmulatedEventData ::= NewGenericBoolean | NewGenericInteger
+ | NewGenericOctetString .
+EmulatedEventSource ::= GenericObjectReference .
+EmulatedEventType ::= EventTypeEnum .
+EntryPointVar ::= ObjectReference .
+ForkSucceeded ::= ObjectReference .
+Feature ::= GenericOctetString .
+FillColourVar ::= ObjectReference .
+FirstItemVar ::= ObjectReference .
+HighlightStatusVar ::= ObjectReference .
+Index ::= GenericInteger .
+InFileName ::= GenericOctetString .
+InteractionStatusVar ::= ObjectReference .
+InVariables ::= "(" ObjectReference+ ")" .
+ItemIndex ::= GenericInteger .
+ItemRefVar ::= ObjectReference .
+ItemStatusVar ::= ObjectReference .
+ItemsToScroll ::= GenericInteger .
+LabelVar ::= ObjectReference .
+LastAnchorFiredVar ::= ObjectReference .
+LineColourVar ::= ObjectReference .
+LineStyleVar ::= ObjectReference .
+LineWidthVar ::= ObjectReference .
+MovementIdentifier ::= GenericInteger .
+NbOfSteps ::= GenericInteger .
+NewAbsoluteColour ::= ":NewAbsoluteColour" GenericOctetString .
+NewCachePriority ::= GenericInteger .
+NewColour ::= NewColourIndex | NewAbsoluteColour .
+NewColourIndex ::= ":NewColourIndex" GenericInteger .
+NewContent ::= NewIncludedContent | NewReferencedContent .
+NewContentCachePriority ::= ":NewCCPriority" GenericInteger .
+NewCounterEndPosition ::= GenericInteger .
+NewCounterPosition ::= GenericInteger .
+NewContentSize ::= ":NewContentSize" GenericInteger .
+NewCounterValue ::= GenericInteger .
+NewCursorShape ::= GenericObjectReference .
+NewEntryPoint ::= GenericInteger .
+NewFirstItem ::= GenericInteger .
+NewFont ::= NewFontName | NewFontReference .
+NewFontName ::= NewGenericOctetString .
+NewFontReference ::= NewGenericObjectReference .
+NewGenericBoolean ::= ":GBoolean" GenericBoolean .
+NewGenericInteger ::= ":GInteger" GenericInteger .
+NewGenericOctetString ::= ":GOctetString" GenericOctetString .
+NewGenericObjectReference ::= ":GObjectRef" GenericObjectReference .
+NewGenericContentReference ::= ":GContentRef" GenericContentReference .
+NewHighlightStatus ::= GenericBoolean .
+NewIncludedContent ::= GenericOctetString .
+NewInteractionStatus ::= GenericBoolean .
+NewLabel ::= GenericOctetString .
+NewLineStyle ::= GenericInteger .
+NewLineWidth ::= GenericInteger .
+NewOverwriteMode ::= GenericBoolean .
+NewPaIetteRef ::= GenericObjectReference .
+NewPortion ::= GenericInteger .
+NewReferencedContent ::= ":NewRefContent" "(" GenericContentReference
+ [NewContentSize]
+ [NewContentCachePriority] ")" .
+NewSliderValue ::= GenericInteger .
+NewSpeed ::= Rational .
+NewTransparency ::= GenericInteger .
+NewVariableValue ::= NewGenericInteger | NewGenericBoolean
+ | NewGenericOctetString
+ | NewGenericObjectReference
+ | NewGenericContentReference .
+NewVolume ::= GenericInteger .
+NewXPosition ::= GenericInteger .
+NewY Position ::= GenericInteger .
+Numerator ::= GenericInteger .
+OpenSucceeded ::= ObjectReference .
+Operator ::= GenericInteger .
+OutFileName ::= GenericOctetString .
+OutVariables ::= "(" ObjectReference+ ")" .
+OverwriteModeVar ::= ObjectReference .
+Parameter ::= NewGenericBoolean | NewGenericInteger
+ | NewGenericOctetString
+ | NewGenericObjectReference
+ | NewGenericContentReference .
+Parameters ::= Parameter+ .
+Point ::= "(" X Y ")" .
+PointList ::= "(" Point+ ")" .
+PortionVar ::= ObjectReference .
+Protocol ::= GenericOctetString .
+Rational ::= Numerator [Denominator] .
+ReadSucceeded ::= ObjectReference .
+ReferenceVisible ::= GenericObjectReference .
+RunningStatusVar ::= ObjectReference .
+SelectionStatusVar ::= ObjectReference .
+SizeVar ::= ObjectReference .
+SliderValueVar ::= ObjectReference .
+StartAngle ::= GenericInteger .
+StoreSucceeded ::= ObjectReference .
+Target ::= GenericObjectReference .
+TextContentVar ::= ObjectReference .
+TextDataVar ::= ObjectReference .
+TimerID ::= GenericInteger .
+TimerValue ::= GenericInteger.
+TokenPositionVar ::= ObjectReference .
+TransitionEffect ::= GenericInteger .
+TriggerIdentifier ::= GenericInteger .
+Value ::= GenericInteger .
+VisibleReference ::= GenericObjectReference .
+VolumeVar ::= ObjectReference .
+X ::= GenericInteger .
+X1 ::= GenericInteger .
+X2 ::= GenericInteger .
+XBoxSizeVar ::= ObjectReference .
+XCursor ::= GenericInteger .
+XNewBoxSize ::= GenericInteger .
+XOut ::= ObjectReference .
+XPositionVar ::= ObjectReference .
+XScale ::= GenericInteger .
+Y ::= GenericInteger .
+Y1 ::= GenericInteger .
+Y2 ::= GenericInteger .
+YBoxSizeVar ::= ObjectReference .
+YCursor ::= GenericInteger .
+YNewBoxSize ::= GenericInteger .
+YOut ::= ObjectReference .
+YPositionVar ::= ObjectReference .
+YScale ::= GenericInteger .
+XOffsetVar ::= ObjectReference .
+YOffsetVar ::= ObjectReference .
+NewXOffset ::= GenericInteger .
+NewYOffset ::= GenericInteger .
+FocusPositionVar ::= ObjectReference .
+NewFocusPosition ::= GenericInteger .
+NewMinValue ::= GenericInteger .
+NewMaxValue ::= GenericInteger .
+NewStepSize ::= GenericInteger .
+
+
+// B.4.43 Referencing Objects, Contents, Values, Colour and Position
+
+ObjectReference ::= ExternalReference | InternalReference .
+ExternalReference ::= "(" GroupIdentifier ObjectNumber ")" .
+InternalReference ::= ObjectNumber .
+GroupIdentifier ::= OctetString .
+ObjectNumber ::= INTEGER .
+
+ContentReference ::= OctetString .
+
+GenericObjectReference ::= DirectReference | IndirectReference .
+DirectReference ::= ObjectReference .
+IndirectReference ::= ":IndirectRef" ObjectReference .
+
+GenericContentReference ::= ContentReference | IndirectReference .
+
+GenericInteger ::= INTEGER | IndirectReference .
+
+GenericBoolean ::= BOOLEAN | IndirectReference .
+
+GenericOctetString ::= OctetString I IndirectReference .
+
+OctetString ::= STRING | QPRINTABLE | BASE64 .
+
+Colour ::= ColourIndex | AbsoluteColour .
+ColourIndex ::= INTEGER .
+AbsoluteColour ::= OctetString .
+
+XYPosition ::= XPosition YPosition .
+XPosition ::= INTEGER .
+YPosition ::= INTEGER .
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Simon K. <s.k...@er...> - 2007-08-21 08:34:12
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, the reason you get the error is because you cannot change channel because you are reading your MHEG data from a local file rather than downloading it - ie you are doing: rb-browser services/4164/ if you have rb-download running on the same host, you can just do: rb-download 4164 & rb-browser and it will use rb-download to change channel - that should stop the error and let you see BBC News Multiscreen too. Mario Rossi wrote: > I've tried it. > It does not crash any more, I get the error message > > SI_TuneIndex: invalid service index (-1); range is 0-0 > > I've tried with the TV, and what happens is that > > Sport -> Sport in video > > sends you to page 1001, the same as the News Multiscreen, which with > redbutton I cannot access either. > I will repost my log in the same location > (http://xoomer.alice.it/enodetti/log/log.txt.bz2), just for reference. > > As a side, I can report that there has been an improvement with video: > > 1) the video and the audio are good > 2) video ratio is wrong, 4:3 instead that 19:9 > 3) I still get a lot of warnings: [mp3 @ 0xb7dd4c20]incorrect frame size > 4) if I may, I would suggest to disable the ability to resize the > window, which gives a not too nice effect of part of the screen not > updated (in case it is made bigger) > > On 8/20/07, Simon Kilvington <s.k...@er...> wrote: >> thanks for the bug report - I've just commit a fix that should >> stop the seg fault - revision 322. >> >> PS: I couldn't bunzip2 your log file when I downloaded it - it >> said the file was corrupt - but I managed to work out what was happening >> from the stack trace > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Redbutton-devel mailing list > Red...@li... > https://lists.sourceforge.net/lists/listinfo/redbutton-devel > > - -- Simon Kilvington -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.4 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGyqN6mt9ZifioJSwRAr/9AJ9Y3KGaoAuwEmOgx9UdQuBvt0LJ2wCfUwsM wOSWncxGZ5ZDFcOh0nlhM3A= =G8S8 -----END PGP SIGNATURE----- |
|
From: Mario R. <mar...@go...> - 2007-08-20 18:36:18
|
I've tried it. It does not crash any more, I get the error message SI_TuneIndex: invalid service index (-1); range is 0-0 I've tried with the TV, and what happens is that Sport -> Sport in video sends you to page 1001, the same as the News Multiscreen, which with redbutton I cannot access either. I will repost my log in the same location (http://xoomer.alice.it/enodetti/log/log.txt.bz2), just for reference. As a side, I can report that there has been an improvement with video: 1) the video and the audio are good 2) video ratio is wrong, 4:3 instead that 19:9 3) I still get a lot of warnings: [mp3 @ 0xb7dd4c20]incorrect frame size 4) if I may, I would suggest to disable the ability to resize the window, which gives a not too nice effect of part of the screen not updated (in case it is made bigger) On 8/20/07, Simon Kilvington <s.k...@er...> wrote: > thanks for the bug report - I've just commit a fix that should > stop the seg fault - revision 322. > > PS: I couldn't bunzip2 your log file when I downloaded it - it > said the file was corrupt - but I managed to work out what was happening > from the stack trace |
|
From: <ski...@us...> - 2007-08-20 09:42:37
|
Revision: 322
http://redbutton.svn.sourceforge.net/redbutton/?rev=322&view=rev
Author: skilvington
Date: 2007-08-20 02:33:44 -0700 (Mon, 20 Aug 2007)
Log Message:
-----------
make sure service index is valid
Modified Paths:
--------------
redbutton-browser/trunk/si.c
Modified: redbutton-browser/trunk/si.c
===================================================================
--- redbutton-browser/trunk/si.c 2007-08-10 16:26:50 UTC (rev 321)
+++ redbutton-browser/trunk/si.c 2007-08-20 09:33:44 UTC (rev 322)
@@ -71,9 +71,9 @@
OctetString *
si_get_url(int index)
{
- if(index > si_max_index)
+ if(index < 0 || index > si_max_index)
{
- error("SI_GetURL: invalid service index (%d); max is %d", index, si_max_index);
+ error("SI_GetURL: invalid service index (%d); range is 0-%d", index, si_max_index);
return NULL;
}
@@ -83,9 +83,9 @@
bool
si_tune_index(int index)
{
- if(index > si_max_index)
+ if(index < 0 || index > si_max_index)
{
- error("SI_TuneIndex: invalid service index (%d); max is %d", index, si_max_index);
+ error("SI_TuneIndex: invalid service index (%d); range is 0-%d", index, si_max_index);
return false;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Simon K. <s.k...@er...> - 2007-08-20 09:42:15
|
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
thanks for the bug report - I've just commit a fix that should
stop the seg fault - revision 322.
PS: I couldn't bunzip2 your log file when I downloaded it - it
said the file was corrupt - but I managed to work out what was happening
from the stack trace
Mario Rossi wrote:
> Hi,
>
> I've having this seg fault with BBC teletext.
> I run rb-download as
>
> rb-download -f channels.conf 4164
>
> This is the output on the console
>
> Unknown PID for association tag 104
>
> And this is the browser.
>
> rb-browser -d services/4164
>
> Then I press R, I select Sport -> Sport in video and always get the error.
> Alternative: it happens if I select the first entry in the top menu
> (the one above news multiscreen).
>
> I'm using latest SVN (release 321).
> Here is the message from gdb
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread -1218345264 (LWP 11930)]
> 0x0809718b in OctetString_copy (dst=0x80aa84c, src=0x80e9410) at
> der_decode.c:274
> 274 memcpy(dst->data, src->data, src->size);
>
> and the backtrace
>
> #0 0x0809718b in OctetString_copy (dst=0x80aa84c, src=0x80e93a0) at
> der_decode.c:274
> #1 0x0804c11a in MHEGEngine_quit (reason=QuitReason_Retune,
> data=0x80e93a0) at MHEGEngine.c:485
> #2 0x08098322 in si_tune_index (index=-1) at si.c:92
> #3 0x0806ac6d in prog_SI_TuneIndex (params=0x80defe8,
> caller_gid=0x80fee78) at ResidentProgramClass.c:982
> #4 0x08069690 in run_program (p=0x80d1384, params=0x80defe8,
> caller_gid=0x80fee78, forked=false) at ResidentProgramClass.c:298
> #5 0x08069413 in ResidentProgramClass_Call (p=0x80d1384,
> params=0x80f888c, caller_gid=0x80fee78) at ResidentProgramClass.c:164
> #6 0x0805c2ec in ElementaryAction_execute (e=0x80f8888,
> caller_gid=0x80fee78) at ElementaryAction.c:138
> #7 0x0804d0e0 in MHEGEngine_processMHEGEvents () at MHEGEngine.c:974
> #8 0x0804b8af in MHEGEngine_run () at MHEGEngine.c:240
> #9 0x0804b3d2 in main (argc=3, argv=0xbfaea1c4) at rb-browser.c:114
>
> Apparently src->data is bad.
>
> (gdb) print *dst
> $3 = {size = 16, data = 0x8108a90 "p�\017\b�\212\020\b\b�\017\bX�\017\b�\002"}
> (gdb) print *src
> $4 = {size = 16, data = 0x11 <Address 0x11 out of bounds>}
>
> If you want the log (-v), here it is
>
> http://xoomer.alice.it/enodetti/log/log.txt.bz2
>
> Hope it helps.
>
> Andrea
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems? Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >> http://get.splunk.com/
> _______________________________________________
> Redbutton-devel mailing list
> Red...@li...
> https://lists.sourceforge.net/lists/listinfo/redbutton-devel
- --
Simon Kilvington
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.4 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFGyWGBmt9ZifioJSwRAn2XAJ9xmpLXcrziVwvYtPz09eZf9i/ddwCcDaEl
oFALXCE/bRn/HRBSsXDU9vk=
=MqOv
-----END PGP SIGNATURE-----
|
|
From: Mario R. <mar...@go...> - 2007-08-19 11:10:35
|
SGksIG5vdCBzdXJlIHdoeSB0aGUgZmlyc3Qgb25lIGFycml2ZWQgYmFkLgpIZXJlIGl0IGlzIGFn YWluLgoKSSd2ZSBoYXZpbmcgdGhpcyBzZWcgZmF1bHQgd2l0aCBCQkMgdGVsZXRleHQuCkkgcnVu IHJiLWRvd25sb2FkIGFzCgpyYi1kb3dubG9hZCAtZiBjaGFubmVscy5jb25mIDQxNjQKClRoaXMg aXMgdGhlIG91dHB1dCBvbiB0aGUgY29uc29sZQoKVW5rbm93biBQSUQgZm9yIGFzc29jaWF0aW9u IHRhZyAxMDQKCkFuZCB0aGlzIGlzIHRoZSBicm93c2VyLgoKcmItYnJvd3NlciAtZCBzZXJ2aWNl cy80MTY0CgpUaGVuIEkgcHJlc3MgUiwgSSBzZWxlY3QgU3BvcnQgLT4gU3BvcnQgaW4gdmlkZW8g YW5kIGFsd2F5cyBnZXQgdGhlIGVycm9yLgpBbHRlcm5hdGl2ZTogaXQgaGFwcGVucyBpZiBJIHNl bGVjdCB0aGUgZmlyc3QgZW50cnkgaW4gdGhlIHRvcCBtZW51Cih0aGUgb25lIGFib3ZlIG5ld3Mg bXVsdGlzY3JlZW4pLgoKSSdtIHVzaW5nIGxhdGVzdCBTVk4gKHJlbGVhc2UgMzIxKS4KSGVyZSBp cyB0aGUgbWVzc2FnZSBmcm9tIGdkYgoKUHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgU0lHU0VHViwg U2VnbWVudGF0aW9uIGZhdWx0LgpbU3dpdGNoaW5nIHRvIFRocmVhZCAtMTIxODM0NTI2NCAoTFdQ IDExOTMwKV0KMHgwODA5NzE4YiBpbiBPY3RldFN0cmluZ19jb3B5IChkc3Q9MHg4MGFhODRjLCBz cmM9MHg4MGU5NDEwKSBhdApkZXJfZGVjb2RlLmM6Mjc0CjI3NCAgICAgICAgICAgICAgICAgICAg IG1lbWNweShkc3QtPmRhdGEsIHNyYy0+ZGF0YSwgc3JjLT5zaXplKTsKCmFuZCB0aGUgYmFja3Ry YWNlCgojMCAgMHgwODA5NzE4YiBpbiBPY3RldFN0cmluZ19jb3B5IChkc3Q9MHg4MGFhODRjLCBz cmM9MHg4MGU5M2EwKSBhdApkZXJfZGVjb2RlLmM6Mjc0CiMxICAweDA4MDRjMTFhIGluIE1IRUdF bmdpbmVfcXVpdCAocmVhc29uPVF1aXRSZWFzb25fUmV0dW5lLApkYXRhPTB4ODBlOTNhMCkgYXQg TUhFR0VuZ2luZS5jOjQ4NQojMiAgMHgwODA5ODMyMiBpbiBzaV90dW5lX2luZGV4IChpbmRleD0t MSkgYXQgc2kuYzo5MgojMyAgMHgwODA2YWM2ZCBpbiBwcm9nX1NJX1R1bmVJbmRleCAocGFyYW1z PTB4ODBkZWZlOCwKY2FsbGVyX2dpZD0weDgwZmVlNzgpIGF0IFJlc2lkZW50UHJvZ3JhbUNsYXNz LmM6OTgyCiM0ICAweDA4MDY5NjkwIGluIHJ1bl9wcm9ncmFtIChwPTB4ODBkMTM4NCwgcGFyYW1z PTB4ODBkZWZlOCwKY2FsbGVyX2dpZD0weDgwZmVlNzgsIGZvcmtlZD1mYWxzZSkgYXQgUmVzaWRl bnRQcm9ncmFtQ2xhc3MuYzoyOTgKIzUgIDB4MDgwNjk0MTMgaW4gUmVzaWRlbnRQcm9ncmFtQ2xh c3NfQ2FsbCAocD0weDgwZDEzODQsCnBhcmFtcz0weDgwZjg4OGMsIGNhbGxlcl9naWQ9MHg4MGZl ZTc4KSBhdCBSZXNpZGVudFByb2dyYW1DbGFzcy5jOjE2NAojNiAgMHgwODA1YzJlYyBpbiBFbGVt ZW50YXJ5QWN0aW9uX2V4ZWN1dGUgKGU9MHg4MGY4ODg4LApjYWxsZXJfZ2lkPTB4ODBmZWU3OCkg YXQgRWxlbWVudGFyeUFjdGlvbi5jOjEzOAojNyAgMHgwODA0ZDBlMCBpbiBNSEVHRW5naW5lX3By b2Nlc3NNSEVHRXZlbnRzICgpIGF0IE1IRUdFbmdpbmUuYzo5NzQKIzggIDB4MDgwNGI4YWYgaW4g TUhFR0VuZ2luZV9ydW4gKCkgYXQgTUhFR0VuZ2luZS5jOjI0MAojOSAgMHgwODA0YjNkMiBpbiBt YWluIChhcmdjPTMsIGFyZ3Y9MHhiZmFlYTFjNCkgYXQgcmItYnJvd3Nlci5jOjExNAoKQXBwYXJl bnRseSBzcmMtPmRhdGEgaXMgYmFkLgoKKGdkYikgcHJpbnQgKmRzdAokMyA9IHtzaXplID0gMTYs IGRhdGEgPSAweDgxMDhhOTAgInDvv71cMDE3XGLvv71cMjEyXDAyMFxiXGLvv71cMDE3XGJY77+9 XDAxN1xi77+9XDAwMiJ9CihnZGIpIHByaW50ICpzcmMKJDQgPSB7c2l6ZSA9IDE2LCBkYXRhID0g MHgxMSA8QWRkcmVzcyAweDExIG91dCBvZiBib3VuZHM+fQoKSWYgeW91IHdhbnQgdGhlIGxvZyAo LXYpLCBoZXJlIGl0IGlzCgpodHRwOi8veG9vbWVyLmFsaWNlLml0L2Vub2RldHRpL2xvZy9sb2cu dHh0LmJ6MgoKSG9wZSBpdCBoZWxwcy4KCkFuZHJlYQo= |
|
From: Mario R. <mar...@go...> - 2007-08-19 10:56:39
|
SGksCgpJJ3ZlIGhhdmluZyB0aGlzIHNlZyBmYXVsdCB3aXRoIEJCQyB0ZWxldGV4dC4KSSBydW4g cmItZG93bmxvYWQgYXMKCnJiLWRvd25sb2FkIC1mIGNoYW5uZWxzLmNvbmYgNDE2NAoKVGhpcyBp cyB0aGUgb3V0cHV0IG9uIHRoZSBjb25zb2xlCgpVbmtub3duIFBJRCBmb3IgYXNzb2NpYXRpb24g dGFnIDEwNAoKQW5kIHRoaXMgaXMgdGhlIGJyb3dzZXIuCgpyYi1icm93c2VyIC1kIHNlcnZpY2Vz LzQxNjQKClRoZW4gSSBwcmVzcyBSLCBJIHNlbGVjdCBTcG9ydCAtPiBTcG9ydCBpbiB2aWRlbyBh bmQgYWx3YXlzIGdldCB0aGUgZXJyb3IuCkFsdGVybmF0aXZlOiBpdCBoYXBwZW5zIGlmIEkgc2Vs ZWN0IHRoZSBmaXJzdCBlbnRyeSBpbiB0aGUgdG9wIG1lbnUKKHRoZSBvbmUgYWJvdmUgbmV3cyBt dWx0aXNjcmVlbikuCgpJJ20gdXNpbmcgbGF0ZXN0IFNWTiAocmVsZWFzZSAzMjEpLgpIZXJlIGlz IHRoZSBtZXNzYWdlIGZyb20gZ2RiCgpQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdTRUdWLCBT ZWdtZW50YXRpb24gZmF1bHQuCltTd2l0Y2hpbmcgdG8gVGhyZWFkIC0xMjE4MzQ1MjY0IChMV1Ag MTE5MzApXQoweDA4MDk3MThiIGluIE9jdGV0U3RyaW5nX2NvcHkgKGRzdD0weDgwYWE4NGMsIHNy Yz0weDgwZTk0MTApIGF0CmRlcl9kZWNvZGUuYzoyNzQKMjc0ICAgICAgICAgICAgICAgICAgICAg bWVtY3B5KGRzdC0+ZGF0YSwgc3JjLT5kYXRhLCBzcmMtPnNpemUpOwoKYW5kIHRoZSBiYWNrdHJh Y2UKCiMwICAweDA4MDk3MThiIGluIE9jdGV0U3RyaW5nX2NvcHkgKGRzdD0weDgwYWE4NGMsIHNy Yz0weDgwZTkzYTApIGF0CmRlcl9kZWNvZGUuYzoyNzQKIzEgIDB4MDgwNGMxMWEgaW4gTUhFR0Vu Z2luZV9xdWl0IChyZWFzb249UXVpdFJlYXNvbl9SZXR1bmUsCmRhdGE9MHg4MGU5M2EwKSBhdCBN SEVHRW5naW5lLmM6NDg1CiMyICAweDA4MDk4MzIyIGluIHNpX3R1bmVfaW5kZXggKGluZGV4PS0x KSBhdCBzaS5jOjkyCiMzICAweDA4MDZhYzZkIGluIHByb2dfU0lfVHVuZUluZGV4IChwYXJhbXM9 MHg4MGRlZmU4LApjYWxsZXJfZ2lkPTB4ODBmZWU3OCkgYXQgUmVzaWRlbnRQcm9ncmFtQ2xhc3Mu Yzo5ODIKIzQgIDB4MDgwNjk2OTAgaW4gcnVuX3Byb2dyYW0gKHA9MHg4MGQxMzg0LCBwYXJhbXM9 MHg4MGRlZmU4LApjYWxsZXJfZ2lkPTB4ODBmZWU3OCwgZm9ya2VkPWZhbHNlKSBhdCBSZXNpZGVu dFByb2dyYW1DbGFzcy5jOjI5OAojNSAgMHgwODA2OTQxMyBpbiBSZXNpZGVudFByb2dyYW1DbGFz c19DYWxsIChwPTB4ODBkMTM4NCwKcGFyYW1zPTB4ODBmODg4YywgY2FsbGVyX2dpZD0weDgwZmVl NzgpIGF0IFJlc2lkZW50UHJvZ3JhbUNsYXNzLmM6MTY0CiM2ICAweDA4MDVjMmVjIGluIEVsZW1l bnRhcnlBY3Rpb25fZXhlY3V0ZSAoZT0weDgwZjg4ODgsCmNhbGxlcl9naWQ9MHg4MGZlZTc4KSBh dCBFbGVtZW50YXJ5QWN0aW9uLmM6MTM4CiM3ICAweDA4MDRkMGUwIGluIE1IRUdFbmdpbmVfcHJv Y2Vzc01IRUdFdmVudHMgKCkgYXQgTUhFR0VuZ2luZS5jOjk3NAojOCAgMHgwODA0YjhhZiBpbiBN SEVHRW5naW5lX3J1biAoKSBhdCBNSEVHRW5naW5lLmM6MjQwCiM5ICAweDA4MDRiM2QyIGluIG1h aW4gKGFyZ2M9MywgYXJndj0weGJmYWVhMWM0KSBhdCByYi1icm93c2VyLmM6MTE0CgpBcHBhcmVu dGx5IHNyYy0+ZGF0YSBpcyBiYWQuCgooZ2RiKSBwcmludCAqZHN0CiQzID0ge3NpemUgPSAxNiwg ZGF0YSA9IDB4ODEwOGE5MCAicO+/vVwwMTdcYu+/vVwyMTJcMDIwXGJcYu+/vVwwMTdcYljvv71c MDE3XGLvv71cMDAyIn0KKGdkYikgcHJpbnQgKnNyYwokNCA9IHtzaXplID0gMTYsIGRhdGEgPSAw eDExIDxBZGRyZXNzIDB4MTEgb3V0IG9mIGJvdW5kcz59CgpJZiB5b3Ugd2FudCB0aGUgbG9nICgt diksIGhlcmUgaXQgaXMKCmh0dHA6Ly94b29tZXIuYWxpY2UuaXQvZW5vZGV0dGkvbG9nL2xvZy50 eHQuYnoyCgpIb3BlIGl0IGhlbHBzLgoKQW5kcmVhCg== |
|
From: Simon K. <s.k...@er...> - 2007-08-17 14:24:23
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, I've been doing some work on a programme to convert the MHEG5 text format into ASN1 (ie DER encoded) data - it's not ready yet, but keep watching this space... 李秋华 wrote: > Hi, > > As I know, there are some authoring tools of MHEG-5, such as MediaTouch, MHEGDitor or MHEGWriter. > > But I couldn’t find where to get them. Anyone knows where to download or buy? Or any other authoring tools? > > > > Thanks very much. > > Best Regards. > > Qiuhua > > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > > ------------------------------------------------------------------------ > > _______________________________________________ > Redbutton-devel mailing list > Red...@li... > https://lists.sourceforge.net/lists/listinfo/redbutton-devel - -- Simon Kilvington -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.4 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGxa+Hmt9ZifioJSwRAomOAJ9C5EPRzskK4JbvmlEJDI5cfXCw4QCeN89Y fJyAS9hebuY/oFqm6s+Mo0g= =wQIZ -----END PGP SIGNATURE----- |
|
From: <qiu...@cn...> - 2007-08-13 10:03:26
|
Hi, As I know, there are some authoring tools of MHEG-5, such as MediaTouch, = MHEGDitor or MHEGWriter. But I couldn=E2=80=99t find where to get them. Anyone knows where to = download or buy? Or any other authoring tools? =20 Thanks very much. Best Regards. Qiuhua |
|
From: <qiu...@cn...> - 2007-08-13 09:45:38
|
Hi, Anybody can give me a mheg-5 application example with asn.1 encoding. = You know in my country there is not any mheg-5 content broadcasted = currently. But I installed the rb-brower and want to try to run it. If = you can give me some more suggestions, you will be welcome. =20 Thanks in advance. Best Regards Qiuhua =20 =20 |