Changes of Revision 13

ffhevc.changes Changed
x
 
1
@@ -1,4 +1,18 @@
2
 -------------------------------------------------------------------
3
+Wed Nov 09 07:00:00 UTC 2016 - neutrino8@opensuse.org
4
+
5
+- Update to version 2.9.7
6
+  * Renamed config var CON to CONFMT. Updates config file version
7
+    to 29
8
+  * Reduced some duplication in the audio codec checks for the
9
+    container formats
10
+  * Reduced some error message duplication when checking if an
11
+    additional container supports an audio codec
12
+  * Rework to the additional container selection code
13
+  * Added color functions for the additional container conversion
14
+  * Added back support for the MOV container
15
+
16
+-------------------------------------------------------------------
17
 Tue Nov 08 10:10:00 UTC 2016 - neutrino8@opensuse.org
18
 
19
 - Update to version 2.9.6
20
ffhevc.spec Changed
10
 
1
@@ -17,7 +17,7 @@
2
 
3
 
4
 Name:           ffhevc
5
-Version:        2.9.6
6
+Version:        2.9.7
7
 Release:        0
8
 Summary:        A small shell script for encoding to H.265/HEVC with ffmpeg
9
 License:        GPL-2.0+
10
ffhevc-2.9.6.tar.gz/ChangeLog -> ffhevc-2.9.7.tar.gz/ChangeLog Changed
15
 
1
@@ -1,3 +1,13 @@
2
+2016-11-09 - ffhevc 2.9.7
3
+   * Renamed config var CON to CONFMT. Updates config file version to 29
4
+   * Reduced some duplication in the audio codec checks for the container
5
+     formats
6
+   * Reduced some error message duplication when checking if an additional
7
+     container supports an audio codec
8
+   * Rework to the additional container selection code
9
+   * Added color functions for the additional container conversion
10
+   * Added back support for the MOV container
11
+   
12
 2016-11-08 - ffhevc 2.9.6
13
    * Added support for encoding to TrueHD audio. Requires a very recent
14
      ffmpeg version, preferably latest from git
15
ffhevc-2.9.6.tar.gz/ffhevc -> ffhevc-2.9.7.tar.gz/ffhevc Changed
201
 
1
@@ -2,8 +2,8 @@
2
 #
3
 # Small script to encode to H.265/HEVC video using FFmpeg and libx265.
4
 # Author: Grozdan "microchip" Nikolov <neutrino8@opensuse.org>
5
-# Version: 2.9.6
6
-# Date: 2016-11-08
7
+# Version: 2.9.7
8
+# Date: 2016-11-09
9
 #
10
 # ffhevc is free software ; you can redistribute it and/or modify
11
 # it under the terms of the GNU General Public License as published by
12
@@ -23,10 +23,10 @@
13
 brown() { echo -e "\e[0;33m$1\e[0;39;49m"; }
14
 error() { echo -e "\e[1;31m$1\e[0;39;49m"; }
15
 
16
-version="2.9.6"
17
+version="2.9.7"
18
 
19
 CFG="$HOME/.ffhevc"
20
-cfgversion="28"
21
+cfgversion="29"
22
 
23
 genconfig_func() {
24
 cat<<EOF>>"$CFG"
25
@@ -42,9 +42,9 @@
26
 # time if a path is provided
27
 OUTDIR="$HOME"
28
 
29
-# Container extension
30
+# Container format extension
31
 # Leave empty to ask each time
32
-CON="mkv"
33
+CONFMT="mkv"
34
 
35
 # Nice value (0-19)
36
 NICE="19"
37
@@ -272,7 +272,7 @@
38
 brown "| |_| |_| '_ \ / _ \ \ / / __|"
39
 brown "|  _|  _| | | |  __/\ V / (__"
40
 brown "|_| |_| |_| |_|\___| \_/ \___|"
41
-brown "v$version"
42
+brown "v$version by microchip"
43
 echo
44
 
45
 if [ -f "$CFG" ]; then
46
@@ -363,20 +363,20 @@
47
        rm -f "$WRITE"
48
    fi
49
    
50
-   if [ -z "$CON" ]; then
51
+   if [ -z "$CONFMT" ]; then
52
        printf "Which Container Format to use? [default is mkv]: "
53
        read confmt
54
-       test -z "$confmt" && CON="mkv" || CON="$confmt"
55
+       test -z "$confmt" && CONFMT="mkv" || CONFMT="$confmt"
56
    fi
57
    
58
-   CON="$(echo "$CON" | tr '[:upper:]' '[:lower:]')"
59
+   CONFMT="$(echo "$CONFMT" | tr '[:upper:]' '[:lower:]')"
60
    
61
-   case "$CON" in
62
-       mp4)    movflags="-movflags +faststart" ;;
63
-       mkv)    true ;;
64
+   case "$CONFMT" in
65
+       mp4|mov)    movflags="-movflags +faststart" ;;
66
+       mkv)        true ;;
67
        *)
68
        error "-> HEVC video not supported by chosen container!"
69
-       error "-> Supported containers are: mkv and mp4"
70
+       error "-> Supported containers are: mkv, mp4 and mov"
71
        error "-> Check your config file, if needed, in '$CFG'"
72
        exit 1
73
        ;;
74
@@ -385,39 +385,46 @@
75
    printf "Output to Additional Container Formats? [y/N]: "
76
    read acf
77
    if [ "$acf" = "y" -o "$acf" = "Y" ]; then
78
-       printf "Specify the Container Formats [example: mp4,mkv - press 'Enter' to skip]: "
79
+       printf "Specify the Container Formats [example: mkv,mp4,mov - press 'Enter' to skip]: "
80
        read econ
81
        test ! -z "$econ" && extracon="$(echo "$econ" | sed 's|,| |g' | tr '[:upper:]' '[:lower:]')"
82
        if [ ! -z "$extracon" ]; then
83
-           for i in $extracon; do
84
-               if [ "$i" = "$CON" ]; then
85
-                   error "-> Additional container matches the main output container!"
86
-                   exit 1
87
-               fi
88
-               case "$i" in
89
-                   mkv|mp4) true ;;
90
-                   *)
91
+           container_func() {
92
+               case "$1" in
93
+                   mp4|mov)
94
+                   green "-> Note: additional container $i supports the following audio codecs:"
95
+                   ;;
96
+               esac
97
+               case "$1" in
98
+                   mp4) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|copy|nosound" ;;
99
+                   mov) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|flac|copy|nosound" ;;
100
+                   other)
101
                    error "-> HEVC video not supported by the $i container!"
102
-                   error "-> Supported containers are: mkv and mp4"
103
+                   error "-> Supported containers are: mkv, mp4 and mov"
104
+                   echo
105
                    exit 1
106
                    ;;
107
                esac
108
+           }
109
+           
110
+           for i in $extracon; do
111
+               if [ "$i" = "$CONFMT" ]; then
112
+                   error "-> Additional container matches the main output container!"
113
+                   exit 1
114
+               fi
115
                echo
116
                case "$i" in
117
-                   mkv)
118
-                   green "-> Note: additional container $i supports all the audio codecs"
119
-                   ;;
120
-                   mp4)
121
-                   green "-> Note: additional container $i supports the following audio codecs:"
122
-                   green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|copy|nosound"
123
-                   ;;
124
+                   mkv)    green "-> Note: additional container $i supports all the audio codecs" ;;
125
+                   mp4)    container_func mp4 ;;
126
+                   mov)    container_func mov ;;
127
+                   *)  container_func other ;;
128
                esac
129
            done
130
            echo
131
        fi
132
    fi
133
    
134
-   OUTPUT="$OUTPUT.$CON"
135
+   OUTPUT="$OUTPUT.$CONFMT"
136
    
137
    test -e "$OUTPUT" && mv -f "$OUTPUT" "$OUTPUT.old"
138
    
139
@@ -438,7 +445,7 @@
140
    test ! -z "$comment" && COMMENT="$comment"
141
 fi
142
 
143
-if [ "$CON" = "mkv" ]; then
144
+if [ "$CONFMT" = "mkv" ]; then
145
    printf "Specify a Cover Image in JPG/PNG format [press 'Enter' to skip]: "
146
    read -e cover
147
    if [ ! -z "$cover" ]; then
148
@@ -1183,18 +1190,25 @@
149
            ;;
150
        esac
151
        
152
-       case "$CON" in
153
+       case "$CONFMT" in
154
            mp4)
155
            case "${acodec[i]}" in
156
-               pcm|opus|flac|truehd)
157
-               error "-> $(echo "${acodec[i]}" | tr '[:lower:]' '[:upper:]') is not supported by the MP4 container!"
158
-               error "-> Check your config file, if needed, in '$CFG'"
159
-               exit 1
160
-               ;;
161
+               pcm|opus|flac|truehd) asupport[i]="0" ;;
162
+           esac
163
+           ;;
164
+           mov)
165
+           case "${acodec[i]}" in
166
+               pcm|opus|truehd) asupport[i]="0" ;;
167
            esac
168
            ;;
169
        esac
170
        
171
+       if [ ! -z "${asupport[i]}" ]; then
172
+           error "-> ${acodec[i]} is not supported by the $CONFMT container!"
173
+           error "-> Check your config file, if needed, in '$CFG'"
174
+           exit 1
175
+       fi
176
+       
177
        if [ "${acodec[i]}" != "copy" ]; then
178
            case "${acodec[i]}" in
179
                fdk*)
180
@@ -1272,6 +1286,7 @@
181
                exit 1
182
                ;;
183
            esac
184
+           
185
            case "${acodec[i]}" in
186
                ac3|eac3|truehd|"")
187
                case "${ach[i]}" in
188
@@ -1481,7 +1496,11 @@
189
 done
190
 
191
 if [ ! -z "$extracon" ]; then
192
-   formats_url="https://en.wikipedia.org/wiki/Comparison_of_video_container_formats#Formats_supported"
193
+   conerror_func() {
194
+       error "-> Additional container $i does not support ${acodec[a]} audio!"
195
+       error "-> See: https://en.wikipedia.org/wiki/Comparison_of_video_container_formats#Formats_supported"
196
+       exit 1
197
+   }
198
    for i in $extracon; do
199
        case "$i" in
200
            # MKV is missing from the list since it supports
201