[ogg-dev] wrappers

Silvia Pfeiffer
Sun, 13 Jun 2010 06:15:38 -0000

Sounds good! Though maybe calling it oggz-metadata might make more sense?

Cheers,
Silvia.

On Sun, Jun 13, 2010 at 1:42 PM, VolodyA! V Anarhist
<Volodya at whengendarmesleeps.org> wrote:
> Hi,
>
> I've sent one of these before, but i wasn't subscribed, and i'm
unsure if it
> went out. I'm subscribed now and i've written another (i believe)
nifty
> wrapper for oggz-tools.
>
> oggz-comments - allows a user to pass the plain text file with each tag on
> their own line
> theoracomment - works like 'vorbiscomment' from VorbisTools
package, but
> sets comments for the theora streams inside an Ogg container. The only two
> things that you can't do with theoracomment that you can with vorbis
comment
> are: 1. run a command and then enter the tags from console 2. use error
> codes in the same way
>
> If anybody has any suggestions on changes or additions to these scripts,
let
> me know. They are GPL3-ed, so you can use them and pass them along if you
> like.
>
> ? ? ? ? ? - Volodya
>
> --
> http://freedom.libsyn.com/ ? ? Echo of Freedom, Radical Podcast
>
> ?"None of us are free until all of us are free." ? ?~ Mihail
Bakunin
>
> #!/bin/bash
>
> # Name: oggz-comments
> # Version: 0,1a
> # Author: Volodya
> # Year: 2010
> # Licence: GPL 3.0
>
> # this is an oggz-comment wrapper
>
> # the command line should be in the form
> # oggz-comments [-o output.ogg | --output output.ogg] [-d | --delete] [-a |
> -all] [-s serialno ?| --serialno serialno] ?[-c content-type ?|
> --content-type content-type] [-m metadata.txt | --metadata-file
> metadata.txt] input.ogg
> # or
> # oggz-comments -h|--help
>
> #if help
> if [ -z "$1" ] || [ "$1" = "-h" ] || [
"$1" = "--help" ]; then
> ? ? ? ?echo "oggz-commenta version 0,1a. written by VolodyA! V
Anarhist"
> ? ? ? ?echo "The command line should look like this:"
> ? ? ? ?echo "oggz-comments [-o output.ogg | --output output.ogg] [-d |
> --delete] [-a | -all] [-s serialno ?| --serialno serialno] ?[-c
content-type
> ?| --content-type content-type] [-m metadata.txt | --metadata-file
> metadata.txt] input.ogg"
> ? ? ? ?exit
> fi
>
>
> #go through all the command line a word at a time
> OUTPUT=""
> DELETE=""
> STREAMS=""
> METADATA=""
> INPUT=""
>
> STATE=""
> for COMMAND in "$@"; do
> ? ? ? ?if [ ${COMMAND:0:1} = "-" ]; then
> ? ? ? ? ? ? ? ?if [ "$COMMAND" = "-o" ] || [
"$COMMAND" = "--output" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?STATE="--output"
> ? ? ? ? ? ? ? ?elif [ "$COMMAND" = "-d" ] || [
"$COMMAND" = "--delete" ];
> then
> ? ? ? ? ? ? ? ? ? ? ? ?DELETE="--delete"
> ? ? ? ? ? ? ? ? ? ? ? ?STATE=""
> ? ? ? ? ? ? ? ?elif [ "$COMMAND" = "-a" ] || [
"$COMMAND" = "--all" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?STREAMS="$STREAMS --all"
> ? ? ? ? ? ? ? ?elif [ "$COMMAND" = "-s" ] || [
"$COMMAND" = "--serialno" ];
> then
> ? ? ? ? ? ? ? ? ? ? ? ?STATE="--serialno"
> ? ? ? ? ? ? ? ?elif [ "$COMMAND" = "-c" ] || [
"$COMMAND" = "--content-type"
> ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?STATE="--content-type"
> ? ? ? ? ? ? ? ?elif [ "$COMMAND" = "-m" ] || [
"$COMMAND" > "--metadata-file" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?STATE="--metadata-file"
> ? ? ? ? ? ? ? ?else
> ? ? ? ? ? ? ? ? ? ? ? ?echo "Wrong command command
'$COMMAND'"
> ? ? ? ? ? ? ? ? ? ? ? ?echo "Use oggz-comments --help for useage
> information."
> ? ? ? ? ? ? ? ? ? ? ? ?exit 1
> ? ? ? ? ? ? ? ?fi
> ? ? ? ?elif [ -n "$STATE" ]; then # if the STATE is not
zero-length
> ? ? ? ? ? ? ? ?if [ "$STATE" = "--output" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?OUTPUT="--output $1"
> ? ? ? ? ? ? ? ?elif [ "$STATE" = "--serialno" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?STREAMS="$STREAMS --serialno $1"
> ? ? ? ? ? ? ? ?elif [ "$STATE" = "--content-type" ];
then
> ? ? ? ? ? ? ? ? ? ? ? ?STREAMS="$STREAMS --content-type $1"
> ? ? ? ? ? ? ? ?elif [ "$STATE" = "--metadata-file" ];
then
> ? ? ? ? ? ? ? ? ? ? ? ?if [ ! -f "$1" ] || [ ! -r "$1"
]; then
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?echo "File '$1' doesn't
exist or is not
> readable"
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?exit 2
> ? ? ? ? ? ? ? ? ? ? ? ?fi
> ? ? ? ? ? ? ? ? ? ? ? ?while read LINE
> ? ? ? ? ? ? ? ? ? ? ? ?do
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?METADATA="$METADATA
\"$LINE\""
> ? ? ? ? ? ? ? ? ? ? ? ?done < "$1"
> ? ? ? ? ? ? ? ?fi
> ? ? ? ? ? ? ? ?STATE=""
> ? ? ? ?else
> ? ? ? ? ? ? ? ?if [ ! -f "$1" ] || [ ! -r "$1" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?echo "File '$1' doesn't exist or is
not readable"
> ? ? ? ? ? ? ? ? ? ? ? ?exit 2
> ? ? ? ? ? ? ? ?fi
> ? ? ? ? ? ? ? ?INPUT="$1"
> ? ? ? ?fi
> ? ? ? ?shift
> done
>
> eval oggz-comment $OUTPUT $DELETE $STREAMS $INPUT $METADATA
>
> #!/bin/bash
>
> # Name: theoracomment
> # Version: 0,1a
> # Author: Volodya
> # Year: 2010
> # Licence: GPL 3.0
>
> # this is an theoracomment, wrapper around oggz-comment that changes theora
> comments inside a file
> # it is intended to have the same parameters as vorbiscomment
>
> # the command line should be in the form
> # theoracomment [-a | -w] [-c metadata.txt | -t "name=value"]
[-q] input.ogv
> output.ogv
> # or
> # theoracomment [-l] input.ogv
> # theoracomment -h|--help
>
> #if help
> if [ -z "$1" ] || [ "$1" = "-h" ] || [
"$1" = "--help" ]; then
> ? ? ? ?echo "theoracomment version 0,1a. written by VolodyA! V
Anarhist"
> ? ? ? ?echo "The command line should look like this:"
> ? ? ? ?echo "theoracomment [-a | -w] [-c metadata.txt | -t
"name=value"]
> [-q] input.ogv output.ogv"
> ? ? ? ?exit
> fi
>
>
> #go through all the command line a word at a time
> OUTPUT=""
> DELETE="--delete"
> STREAMS="--content-type theora"
> METADATA=""
> INPUT=""
>
> STATE=""
> for COMMAND in "$@"; do
> ? ? ? ?if [ ${COMMAND:0:1} = "-" ]; then
> ? ? ? ? ? ? ? ?if [ "$COMMAND" = "-a" ] || [
"$COMMAND" = "--append" ] || [
> "$COMMAND" = "--add" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?DELETE=""
> ? ? ? ? ? ? ? ? ? ? ? ?STATE=""
> ? ? ? ? ? ? ? ?elif [ "$COMMAND" = "-w" ] || [
"$COMMAND" = "--write" ] || [
> "$COMMAND" = "--wipe" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?DELETE="--delete"
> ? ? ? ? ? ? ? ? ? ? ? ?STATE=""
> ? ? ? ? ? ? ? ?elif [ "$COMMAND" = "-l" ] || [
"$COMMAND" = "--list" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?STATE="--list"
> ? ? ? ? ? ? ? ?elif [ "$COMMAND" = "-c" ] || [
"$COMMAND" = "--comment-file"
> ] || [ "$COMMAND" = "--commentfile" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?STATE="--comment-file"
> ? ? ? ? ? ? ? ?elif [ "$COMMAND" = "-t" ] || [
"$COMMAND" = "--tag" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?STATE="--tag"
> ? ? ? ? ? ? ? ?elif [ "$COMMAND" = "-R" ] || [
"$COMMAND" = "--raw" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?#ignore, is meant to read/write in UTF-8
> ? ? ? ? ? ? ? ? ? ? ? ?STATE=""
> ? ? ? ? ? ? ? ?elif [ "$COMMAND" = "-q" ] || [
"$COMMAND" = "--quiet" ];
> then
> ? ? ? ? ? ? ? ? ? ? ? ?#ignore, is meant to read/write in UTF-8
> ? ? ? ? ? ? ? ? ? ? ? ?STATE=""
> ? ? ? ? ? ? ? ?else
> ? ? ? ? ? ? ? ? ? ? ? ?echo "Wrong command command
'$COMMAND'"
> ? ? ? ? ? ? ? ? ? ? ? ?echo "Use oggz-comments --help for useage
> information."
> ? ? ? ? ? ? ? ? ? ? ? ?exit 1
> ? ? ? ? ? ? ? ?fi
> ? ? ? ?elif [ -n "$STATE" ]; then # if the STATE is not
zero-length
> ? ? ? ? ? ? ? ?if [ "$STATE" = "--list" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?if [ ! -f "$1" ] || [ ! -r "$1"
]; then
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?echo "File '$1' doesn't
exist or is not
> readable"
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?exit 2
> ? ? ? ? ? ? ? ? ? ? ? ?fi
> ? ? ? ? ? ? ? ? ? ? ? ?# h - hold the old line, G - append the old line to
> new
> ? ? ? ? ? ? ? ? ? ? ? ?# it's used to capitalise only before ':
', the
> substitution is needed
> ? ? ? ? ? ? ? ? ? ? ? ?# but we combine the substitution to change ':
' to
> '='
> ? ? ? ? ? ? ? ? ? ? ? ?eval oggz-comment --content-type theora -l
"$1" | sed
> ' {
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/^[^\t]/d
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s/^\t//g
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/^Vendor/d
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?h
>
> ?y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?G
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s/: .*: /=/
> ? ? ? ? ? ? ? ? ? ? ? ?}'
> ? ? ? ? ? ? ? ? ? ? ? ?exit 0 #everything is done
> ? ? ? ? ? ? ? ?elif [ "$STATE" = "--tag" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?METADATA="$1"
> ? ? ? ? ? ? ? ?elif [ "$STATE" = "--comment-file" ];
then
> ? ? ? ? ? ? ? ? ? ? ? ?if [ ! -f "$1" ] || [ ! -r "$1"
]; then
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?echo "File '$1' doesn't
exist or is not
> readable"
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?exit 2
> ? ? ? ? ? ? ? ? ? ? ? ?fi
> ? ? ? ? ? ? ? ? ? ? ? ?while read LINE
> ? ? ? ? ? ? ? ? ? ? ? ?do
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?METADATA="$METADATA
\"$LINE\""
> ? ? ? ? ? ? ? ? ? ? ? ?done < "$1"
> ? ? ? ? ? ? ? ?fi
> ? ? ? ? ? ? ? ?STATE=""
> ? ? ? ?else
> ? ? ? ? ? ? ? ?if [ -n "$INPUT" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?OUTPUT="--output $1"
> ? ? ? ? ? ? ? ?else
> ? ? ? ? ? ? ? ? ? ? ? ?if [ ! -f "$1" ] || [ ! -r "$1"
]; then
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?echo "File '$1' doesn't
exist or is not
> readable"
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?exit 2
> ? ? ? ? ? ? ? ? ? ? ? ?fi
> ? ? ? ? ? ? ? ? ? ? ? ?INPUT="$1"
> ? ? ? ? ? ? ? ?fi
> ? ? ? ?fi
> ? ? ? ?shift
> done
>
> if [ -n "$METADATA" ]; then # need to read metadata from console
> ? ? ? ?while read LINE
> ? ? ? ?do
> ? ? ? ? ? ? ? ?METADATA="$METADATA \"$LINE\""
> ? ? ? ?done
> fi
>
> if [ -n "$OUTPUT" ]; then
> ? ? ? ?eval oggz-comment $OUTPUT $DELETE $STREAMS $INPUT $METADATA
> else
> ? ? ? ?for i in {1..100}
> ? ? ? ?do
> ? ? ? ? ? ? ? ?if [ ! -f "$INPUT~$i~" ] && [ ! -r
"$INPUT~$i~" ]; then
> ? ? ? ? ? ? ? ? ? ? ? ?eval mv "$INPUT" "$INPUT~$i~"
> ? ? ? ? ? ? ? ? ? ? ? ?OUTPUT="--output $INPUT"
> ? ? ? ? ? ? ? ? ? ? ? ?INPUT="$INPUT~$i~"
> ? ? ? ? ? ? ? ? ? ? ? ?break
> ? ? ? ? ? ? ? ?fi
> ? ? ? ?done
> ? ? ? ?if [ -n "$OUTPUT" ]; then
> ? ? ? ? ? ? ? ?eval oggz-comment $OUTPUT $DELETE $STREAMS $INPUT $METADATA
> ? ? ? ? ? ? ? ?eval rm $INPUT
> ? ? ? ?else
> ? ? ? ? ? ? ? ?echo Unable to create a temporary file name
> ? ? ? ?fi
> fi
>
> _______________________________________________
> ogg-dev mailing list
> ogg-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/ogg-dev
>
>