- Mar 07, 2025
-
-
Petter Reinholdtsen authored
Made sure the implementation matches the prototype.
-
Petter Reinholdtsen authored
Rewrites 2fb974cf.
-
Petter Reinholdtsen authored
This will avoid running valgrind on bash and instead validate the test programs themselves.
-
Billae authored
-
Petter Reinholdtsen authored
This avoid a crash on bogus input, just exit with a message instead. Fixes #2305
-
Petter Reinholdtsen authored
Using ogg_uint32_t and uint8_t instead. Get rid of the following compiler message: ../../examples/tiff2theora.c:283:1: warning: ‘uint32’ is deprecated [-Wdeprecated-declarations] 283 | rgb_to_yuv(uint32 *raster, | ^~~~~~~~~~ ../../examples/tiff2theora.c: In function ‘rgb_to_yuv’: ../../examples/tiff2theora.c:314:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 314 | uint8 r0 = TIFFGetR(raster[(h-y)*w + x]); | ^~~~~ ../../examples/tiff2theora.c:315:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 315 | uint8 g0 = TIFFGetG(raster[(h-y)*w + x]); | ^~~~~ ../../examples/tiff2theora.c:316:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 316 | uint8 b0 = TIFFGetB(raster[(h-y)*w + x]); | ^~~~~ ../../examples/tiff2theora.c:317:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 317 | uint8 r1 = TIFFGetR(raster[(h-y)*w + x1]); | ^~~~~ ../../examples/tiff2theora.c:318:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 318 | uint8 g1 = TIFFGetG(raster[(h-y)*w + x1]); | ^~~~~ ../../examples/tiff2theora.c:319:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 319 | uint8 b1 = TIFFGetB(raster[(h-y)*w + x1]); | ^~~~~ ../../examples/tiff2theora.c:320:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 320 | uint8 r2 = TIFFGetR(raster[(h-y1)*w + x]); | ^~~~~ ../../examples/tiff2theora.c:321:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 321 | uint8 g2 = TIFFGetG(raster[(h-y1)*w + x]); | ^~~~~ ../../examples/tiff2theora.c:322:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 322 | uint8 b2 = TIFFGetB(raster[(h-y1)*w + x]); | ^~~~~ ../../examples/tiff2theora.c:323:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 323 | uint8 r3 = TIFFGetR(raster[(h-y1)*w + x1]); | ^~~~~ ../../examples/tiff2theora.c:324:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 324 | uint8 g3 = TIFFGetG(raster[(h-y1)*w + x1]); | ^~~~~ ../../examples/tiff2theora.c:325:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 325 | uint8 b3 = TIFFGetB(raster[(h-y1)*w + x1]); | ^~~~~ ../../examples/tiff2theora.c:347:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 347 | uint8 r = TIFFGetR(raster[(h-y)*w + x]); | ^~~~~ ../../examples/tiff2theora.c:348:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 348 | uint8 g = TIFFGetG(raster[(h-y)*w + x]); | ^~~~~ ../../examples/tiff2theora.c:349:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 349 | uint8 b = TIFFGetB(raster[(h-y)*w + x]); | ^~~~~ ../../examples/tiff2theora.c:360:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 360 | uint8 r0 = TIFFGetR(raster[(h-y)*w + x]); | ^~~~~ ../../examples/tiff2theora.c:361:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 361 | uint8 g0 = TIFFGetG(raster[(h-y)*w + x]); | ^~~~~ ../../examples/tiff2theora.c:362:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 362 | uint8 b0 = TIFFGetB(raster[(h-y)*w + x]); | ^~~~~ ../../examples/tiff2theora.c:363:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 363 | uint8 r1 = TIFFGetR(raster[(h-y)*w + x1]); | ^~~~~ ../../examples/tiff2theora.c:364:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 364 | uint8 g1 = TIFFGetG(raster[(h-y)*w + x1]); | ^~~~~ ../../examples/tiff2theora.c:365:9: warning: ‘uint8’ is deprecated [-Wdeprecated-declarations] 365 | uint8 b1 = TIFFGetB(raster[(h-y)*w + x1]); | ^~~~~ ../../examples/tiff2theora.c: In function ‘tiff_read’: ../../examples/tiff2theora.c:387:3: warning: ‘uint32’ is deprecated [-Wdeprecated-declarations] 387 | uint32 width; | ^~~~~~ ../../examples/tiff2theora.c:388:3: warning: ‘uint32’ is deprecated [-Wdeprecated-declarations] 388 | uint32 height; | ^~~~~~ ../../examples/tiff2theora.c:390:3: warning: ‘uint32’ is deprecated [-Wdeprecated-declarations] 390 | uint32 *raster; | ^~~~~~ ../../examples/tiff2theora.c:404:3: warning: ‘uint32’ is deprecated [-Wdeprecated-declarations] 404 | raster = malloc(pixels*sizeof(uint32)); | ^~~~~~
-
Petter Reinholdtsen authored
The ftime method has been removed from POSIX and is depricated on Linux. clock_gettime() work better on Linux, but is not available on Windows, so fall back to ftime() if autotools/scons fail to detect clock_gettime(). Based on proposal in opusfile!9. Fixes the following compiler messages: ../../examples/dump_video.c: In function ‘main’: ../../examples/dump_video.c:490:5: warning: ‘ftime’ is deprecated: Use gettimeofday or clock_gettime instead [-Werror=deprecated-declarations] 490 | ftime(&start); | ^~~~~ In file included from ../../examples/dump_video.c:40: /usr/include/x86_64-linux-gnu/sys/timeb.h:29:12: note: declared here 29 | extern int ftime (struct timeb *__timebuf) | ^~~~~ ../../examples/dump_video.c:491:5: warning: ‘ftime’ is deprecated: Use gettimeofday or clock_gettime instead [-Werror=deprecated-declarations] 491 | ftime(&last); | ^~~~~ /usr/include/x86_64-linux-gnu/sys/timeb.h:29:12: note: declared here 29 | extern int ftime (struct timeb *__timebuf) | ^~~~~ ../../examples/dump_video.c:505:13: warning: ‘ftime’ is deprecated: Use gettimeofday or clock_gettime instead [-Werror=deprecated-declarations] 505 | ftime(&after); | ^~~~~ /usr/include/x86_64-linux-gnu/sys/timeb.h:29:12: note: declared here 29 | extern int ftime (struct timeb *__timebuf) | ^~~~~
-
Petter Reinholdtsen authored
The header used signed char _bf[256], make sure the method uses the same. Adjust pointer arithmetic to use array notation to make operation explicit. Avoid the following compiler message: ../../lib/state.c:1056:15: warning: argument 2 of type 'signed char *' declared as a pointer [-Warray-parameter=] 1056 | signed char *_bv,int _refi,int _pli,int _fragy0,int _fragy_end){ | ~~~~~~~~~~~~~^~~ In file included from ../../lib/state.c:20: ../../lib/state.h:526:14: note: previously declared as an array 'signed char[256]' 526 | signed char _bv[256],int _refi,int _pli,int _fragy0,int _fragy_end); | ~~~~~~~~~~~~^~~~~~~~
-
Petter Reinholdtsen authored
-
Petter Reinholdtsen authored
This avoid obsolete notation. Increase autoconf dependency to version 2.71.
-
Petter Reinholdtsen authored
Added info.c to libtheoraenc source and dropped library dependency on libtheoradec. Addresses issue reported in https://bugs.debian.org/923940 about some symbols being unresolved.
-
Petter Reinholdtsen authored
-
Petter Reinholdtsen authored
Both POSIX, the Linux documentation and UNIX Network Programming volume 1 by Stephens state that NULL is accepted. This avoid the following compiler message: ../../examples/player_example.c: In function ‘main’: ../../examples/player_example.c:839:22: warning: passing argument 2 to ‘restrict’-qualified parameter aliases with argument 4 [-Werror=restrict] 839 | n=select(n,&empty,&writefs,&empty,&timeout); | ^~~~~~ ~~~~~~ ../../examples/player_example.c:843:18: warning: passing argument 2 to ‘restrict’-qualified parameter aliases with argument 4 [-Werror=restrict] 843 | select(n,&empty,&writefs,&empty,NULL); | ^~~~~~ ~~~~~~
-
- Oct 27, 2020
-
-
Ralph Giles authored
Apparently this still has users, so test it, rather than removing it. Verify we can build and clean up without error.
-
Ralph Giles authored
Add a build description for gitlab's continuous integration build and test runners. This gives us ongoing converage on commmits and merge requests in the upstream repository. Based on the gcc:9 image we currently use for most projects. It already includes make and autotools, but we need to install dependencies for the example programs and documentation. - debian buster has fig2dev in its own package. - latex-extras is needed for wrapfig, which has been superceeded by lwarp-wrapfig. NB defining a separate job at the test stage clears all the generated artefacts, which means we lose our configure script and makefiles. Therefore isn't more efficient to just do the tests as extra steps in the build stage.
-
- Oct 24, 2020
-
-
Tristan Matthews authored
-
- Oct 22, 2020
-
-
Zebediah Figura authored
GStreamer's "theoradec" element always calls th_decode_ctl() for all telemetry options, passing 0 if they are not enabled. This results in our creating a Cairo buffer and performing YUV/RGB conversion, even if all telemetry is disabled, which is very slow and can cause noticeable lag during playback.
-
- Jun 18, 2020
-
-
Ralph Giles authored
Align indents to two spaces for cosmetic uniformity.
-
Signed-off-by:
Ralph Giles <giles@thaumas.net>
-
- Feb 25, 2020
-
-
Signed-off-by:
Ralph Giles <giles@thaumas.net>
-
From GCC documentation (for GCC 5 and above): - ‘+’ means that this operand is both read and written by the instruction. - Only read-only operands can use ‘%’. Thus, ‘+’ and ‘%’ cannot be used at the same time. Signed-off-by:
Timothy B. Terriberry <tterribe@xiph.org> Signed-off-by:
Ralph Giles <giles@thaumas.net>
-
Ralph Giles authored
Conform to local style, use shorter variable names, and add some comments so the intent of the flow is more clear. Also propagate the check to the transcoder example which duplicates the same code.
-
Abort on error from `vorbis_analysis_headerout`. Signed-off-by:
Ralph Giles <giles@thaumas.net>
-
Ralph Giles authored
Add these to .gitignore so they don't clutter up version control status messages and grep output.
-
Ralph Giles authored
Update links and place the description further away in time; this codec isn't widely used any more.
-
Ralph Giles authored
This is more readable on the gitlab/github landing pages.
-
- Feb 14, 2020
-
-
Tristan Matthews authored
This will bail on files exceeding 16384x16384 (useful for fuzzing).
-
- Oct 23, 2017
-
-
Ralph Giles authored
These were left as a convenience for those on old systems. Automake 1.11 is pretty widely available now.
-
Ralph Giles authored
This is more appropriate now that we've moved the primary repository into git from subversion.
-
Ralph Giles authored
Replace our more complex autogen.sh script with a copy of the one from the Opus repository, which just calls autoreconf. That command does the same things more efficiently and is reliably available now.
-
Ralph Giles authored
This prefixes generated object file names with their relative path. The idea is to avoid conflicts. We don't have any, but automake warns about the issue, so set the option to address that.
-
Signed-off-by:
Ralph Giles <giles@thaumas.net>
-
- Jul 20, 2017
-
-
Tristan Matthews authored
Seems to only effect OS X according to Travis CI
-
- Jul 19, 2017
-
-
Tristan Matthews authored
-
Tristan Matthews authored
-
- Jun 05, 2017
-
-
Timothy B. Terriberry authored
The package enumeration tests in configure weren't relative to the ${srcdir}, and the Makefile.am rules didn't handle a destination directory different from the source directory.
-
- Nov 28, 2016
-
-
Ralph Giles authored
Global pointers are initialized to zero in C, but not in C++. Add an explicit initializer to reduce confusion and avoid bugs when the example code is copied into C++ applications. Based on a patch by Alex Houghton <houghton1411@aol.com>.
-
- Sep 23, 2016
-
-
Timothy B. Terriberry authored
We made sure to emit emms before potentially calling/returning to applicate code, but not before calling libc code. It turns out musl libc's malloc/free implementation use floating point, so they don't work correctly unless we do. Add some extra calls to make sure the FPU is in the proper state any place we might potentially call malloc or free. Thanks to Rune (ztsdztsd on Trac) for the report. Fixes #2287
-
Timothy B. Terriberry authored
If we have some dupe frames right near the end of the buffer, our metric window can be slightly larger than the buffer. However, the clamping we use to determine how many frames' worth of metrics to add to the buffer had a mix of signed and unsigned types, so if that number when negative, instead of clamping against zero, it would ask for all remaining frames in the file. That would cause an infinite loop when we tried to find the last keyframe in the circular buffer in oc_enc_select_qi() (which was not big enough to actually hold that many frames). This patch changes the clamp to a form that works with all unsigned values. Thanks to Brion Vibber for the report. Fixes #2229 Forward-port of r19507 from svn.
-
- Jul 27, 2016
-
-
Timothy B. Terriberry authored
In the case where we got a data packet before receiving all three headers, the old code would check to see if the second through seventh bytes matched the magic string "theora" (extremely unlikely, but possible), and if so, return TH_EBADHEADER, otherwise return TH_ENOTFORMAT. That this was not consistent was a bit non-sensical. 5a5f5bb2 changed to returning TH_EBADHEADER if we got a data packet after receiving the first header, but left the old behavior for the first packet. Change instead to explicitly return TH_ENOTFORMAT if the first header was missing (since we only check one bit of the packet to determine whether or not it's a data packet, odds are it's a packet for some other kind of data, like a Vorbis header). We continue to return TH_EBADHEADER if we see a data packet after encountering a valid header, but before reading all three. Also re-arrange the NULL checks to follow continue to allow the undocumented ability to pass in NULL for parameters which are not needed by the next header in the sequence. E.g., it's perfectly all right to pass NULL for _setup when expecting to read the comment header next. In this case we'll now return TH_EBADHEADER instead of TH_EFAULT if the packet was actually a data packet.
-