Antonio Ospite [Thu, 1 Mar 2018 14:00:25 +0000 (15:00 +0100)]
examples: remove some trailing spaces
Antonio Ospite [Wed, 28 Feb 2018 16:09:46 +0000 (17:09 +0100)]
am7xxx-play: add a comment to explain why a run-time warning can be ignored
Using the AV_PIX_FMT_YUVJ420P pixel format results n a run-time warning
from swscaler:
[swscaler @ 0x5600046b3cc0] deprecated pixel format used, make sure you did set range correctly
However this cannot be changed because the mjpeg codec relies on it,
otherwise it fails with the following error message:
[mjpeg @ 0x560eea5f5360] Specified pixel format yuv420p is invalid or not supported
So just add a comment, to avoid loosing time figuring things out again
in the future.
Antonio Ospite [Wed, 28 Feb 2018 15:23:34 +0000 (16:23 +0100)]
am7xxx-play: stop using avcodec_decode_video2() and avcodec_encode_video2()
Since FFMpeg 3.1, avcodec_decode_video2() and avcodec_encode_video2()
have been deprecated in favor of the more generic send/receive API.
Provide some wrappers to ease the transition between the two APIs.
The change fixes the following warnings:
.../libam7xxx/examples/am7xxx-play.c: In function ‘am7xxx_play’:
.../libam7xxx/examples/am7xxx-play.c:372:3: warning: ‘avcodec_decode_video2’ is deprecated [-Wdeprecated-declarations]
ret = avcodec_decode_video2(input_ctx.codec_ctx, frame_raw, &got_frame, &in_packet);
^~~
In file included from /usr/include/x86_64-linux-gnu/libavformat/avformat.h:319:0,
from /usr/include/x86_64-linux-gnu/libavdevice/avdevice.h:51,
from .../libam7xxx/examples/am7xxx-play.c:32:
/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:4993:5: note: declared here
int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
^~~~~~~~~~~~~~~~~~~~~
.../libam7xxx/examples/am7xxx-play.c:403:5: warning: ‘avcodec_encode_video2’ is deprecated [-Wdeprecated-declarations]
ret = avcodec_encode_video2(output_ctx.codec_ctx,
^~~
In file included from /usr/include/x86_64-linux-gnu/libavformat/avformat.h:319:0,
from /usr/include/x86_64-linux-gnu/libavdevice/avdevice.h:51,
from .../libam7xxx/examples/am7xxx-play.c:32:
/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:5508:5: note: declared here
int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
^~~~~~~~~~~~~~~~~~~~~
Antonio Ospite [Wed, 28 Feb 2018 14:17:28 +0000 (15:17 +0100)]
am7xxx-play: s/picture/frame/ to make the variable names match the data types
No functional changes, just a word substitution to match more closely
what the data types represent.
Antonio Ospite [Wed, 28 Feb 2018 12:50:31 +0000 (13:50 +0100)]
am7xxx-play: use av_find_best_stream() instead of open-coding the search
Antonio Ospite [Wed, 28 Feb 2018 12:25:07 +0000 (13:25 +0100)]
am7xxx-play: remove useless call to avcodec_close() in video_output_init()
If the code reaches the "cleanup" exit path in video_output_init() the
output codec context was never opened, so there is no need to close it.
Antonio Ospite [Wed, 28 Feb 2018 12:01:51 +0000 (13:01 +0100)]
am7xxx-play: free AVCodecContext variables with avcodec_free_context()
Deallocate AVCodecContext variables with avcodec_free_context() instead
of av_free() this is for symmetry with the allocation functions.
Adjust and update the comment to the new code.
Antonio Ospite [Wed, 28 Feb 2018 11:48:31 +0000 (12:48 +0100)]
am7xxx-play: use AVStream.codecpar instead of the deprecated AVStream.codec
AVStream.codec has been deprecated and AVStream.codecpar should be used
instead, as shown in:
http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commitdiff;h=
9200514ad8717c63f82101dc394f4378854325bf
The changes fix the following compilation warnings:
.../libam7xxx/examples/am7xxx-play.c: In function ‘video_input_init’:
.../libam7xxx/examples/am7xxx-play.c:104:3: warning: ‘codec’ is deprecated [-Wdeprecated-declarations]
if (input_format_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
^~
In file included from /usr/include/x86_64-linux-gnu/libavdevice/avdevice.h:51:0,
from .../libam7xxx/examples/am7xxx-play.c:32:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:893:21: note: declared here
AVCodecContext *codec;
^~~~~
.../libam7xxx/examples/am7xxx-play.c:115:2: warning: ‘codec’ is deprecated [-Wdeprecated-declarations]
input_codec_ctx = input_format_ctx->streams[video_index]->codec;
^~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/libavdevice/avdevice.h:51:0,
from .../libam7xxx/examples/am7xxx-play.c:32:
/usr/include/x86_64-linux-gnu/libavformat/avformat.h:893:21: note: declared here
AVCodecContext *codec;
^~~~~
Antonio Ospite [Wed, 28 Feb 2018 11:43:33 +0000 (12:43 +0100)]
am7xxx-play: don't override return value when there is a usable one
Don't override the avcodec_open2() return value, we can pass along the
negative return value as is to the caller.
Antonio Ospite [Wed, 28 Feb 2018 09:18:07 +0000 (10:18 +0100)]
am7xxx-play: remove some code which will never be executed
input_codec_ctx is guaranteed to be defined here, otherwise the code
would have bailed out earlier.
Antonio Ospite [Tue, 27 Feb 2018 22:42:32 +0000 (23:42 +0100)]
am7xxx-play: remove any usage of ENOTSUP
There's really no need to use ENOTSUP here, the return value is not
checked against the specific value, but just for the sign.
Replacing it with EINVAL makes the code more aligned with the other
error paths and also allows to remove a conditional define.
Antonio Ospite [Tue, 27 Feb 2018 17:41:44 +0000 (18:41 +0100)]
am7xxx: return EINVAL instead of ENOTSUP in am7xxx_get_device_info()
All the other error paths about invalid results or unsupported
operations return EINVAL, so remove the only instance of ENOTSUP.
Since the API documentation makes no promises on the actual negative
value of the returned error, this little change of behavior should be
fine.
Antonio Ospite [Tue, 27 Feb 2018 16:03:36 +0000 (17:03 +0100)]
am7xxx: fix C99 conformance for printf & co. when compiling with MinGW
C99 format specifiers like "%hhd" are used with log_message() but MinGW
(and Windows) does not really supports them, so the compiler suggests to
use the "gnu_printf" attribute for the function.
However "gnu_printf"is not available on clang so it's not an option,
a better alternative is the solution suggested by MinGW at
https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/
The change fixes the following warnings when compiling with MinGW:
.../libam7xxx/src/am7xxx.c: In function ‘log_message’:
.../libam7xxx/src/am7xxx.c:647:3: warning: function ‘log_message’ might be a candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format]
vfprintf(stderr, fmt, ap);
^~~~~~~~
.../libam7xxx/src/am7xxx.c: In function ‘open_device’:
.../libam7xxx/src/am7xxx.c:772:15: warning: unknown conversion type character ‘h’ in format [-Wformat=]
debug(ctx, "Cannot set configuration %hhu\n",
^
.../libam7xxx/src/am7xxx.c:65:85: note: in definition of macro ‘debug’
#define debug(ctx, ...) log_message(ctx, AM7XXX_LOG_DEBUG, __func__, 0, __VA_ARGS__)
^~~~~~~~~~~
.../libam7xxx/src/am7xxx.c:772:15: warning: too many arguments for format [-Wformat-extra-args]
debug(ctx, "Cannot set configuration %hhu\n",
^
.../libam7xxx/src/am7xxx.c:65:85: note: in definition of macro ‘debug’
#define debug(ctx, ...) log_message(ctx, AM7XXX_LOG_DEBUG, __func__, 0, __VA_ARGS__)
^~~~~~~~~~~
.../libam7xxx/src/am7xxx.c:785:14: warning: unknown conversion type character ‘h’ in format [-Wformat=]
debug(ctx, "Cannot claim interface %hhu\n",
^
.../libam7xxx/src/am7xxx.c:65:85: note: in definition of macro ‘debug’
#define debug(ctx, ...) log_message(ctx, AM7XXX_LOG_DEBUG, __func__, 0, __VA_ARGS__)
^~~~~~~~~~~
.../libam7xxx/src/am7xxx.c:785:14: warning: too many arguments for format [-Wformat-extra-args]
debug(ctx, "Cannot claim interface %hhu\n",
^
.../libam7xxx/src/am7xxx.c:65:85: note: in definition of macro ‘debug’
#define debug(ctx, ...) log_message(ctx, AM7XXX_LOG_DEBUG, __func__, 0, __VA_ARGS__)
^~~~~~~~~~~
.../libam7xxx/src/am7xxx.c:803:14: warning: unknown conversion type character ‘h’ in format [-Wformat=]
debug(ctx, "libusb configuration changed (expected: %hhu, current: %d)\n",
^
.../libam7xxx/src/am7xxx.c:65:85: note: in definition of macro ‘debug’
#define debug(ctx, ...) log_message(ctx, AM7XXX_LOG_DEBUG, __func__, 0, __VA_ARGS__)
^~~~~~~~~~~
.../libam7xxx/src/am7xxx.c:803:14: warning: too many arguments for format [-Wformat-extra-args]
debug(ctx, "libusb configuration changed (expected: %hhu, current: %d)\n",
^
.../libam7xxx/src/am7xxx.c:65:85: note: in definition of macro ‘debug’
#define debug(ctx, ...) log_message(ctx, AM7XXX_LOG_DEBUG, __func__, 0, __VA_ARGS__)
^~~~~~~~~~~
Antonio Ospite [Mon, 26 Feb 2018 17:29:38 +0000 (18:29 +0100)]
am7xxx: use the same indenting style for all preprocessor directives
While at it also reformat a multi-line comment to follow the style of
the other comments.
Antonio Ospite [Mon, 26 Feb 2018 16:02:43 +0000 (17:02 +0100)]
doc: update Doxyfile.in
Antonio Ospite [Mon, 26 Feb 2018 15:05:20 +0000 (16:05 +0100)]
am7xxx: specify LIBUSB_CALL for send_data_async_complete_cb()
send_data_async_complete_cb() is used as a callback for
libusb_fill_bulk_transfer() and it is expected to be of type
'libusb_transfer_cb_fn' which is defined using LIBUSB_CALL.
LIBUSB_CALL is only used on Windows and not having it results in the
following warning when compiling for Windows:
.../libam7xxx/src/am7xxx.c: In function ‘send_data_async’:
.../libam7xxx/src/am7xxx.c:508:7: warning: passing argument 6 of ‘libusb_fill_bulk_transfer’ from incompatible pointer type [-Wincompatible-pointer-types]
send_data_async_complete_cb, dev, 0);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/ao2/Proj/picoProjector/libam7xxx/src/am7xxx.c:24:0:
.../libam7xxx/build/libusb-1.0.21/include/libusb-1.0/libusb.h:1553:20: note: expected ‘libusb_transfer_cb_fn’ but argument is of type ‘void (*)(struct libusb_transfer *)’
static inline void libusb_fill_bulk_transfer(struct libusb_transfer *transfer,
^~~~~~~~~~~~~~~~~~~~~~~~~
Antonio Ospite [Mon, 26 Feb 2018 14:50:53 +0000 (15:50 +0100)]
src/tools.c: fix compilation on Windows
On Windows nanosleep() is not available and compiling fails with the
following error:
CMakeFiles/am7xxx.dir/objects.a(tools.c.obj):tools.c:(.text+0x4a): undefined reference to `nanosleep'
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/am7xxx.dir/build.make:153: lib/libam7xxx.dll] Error 1
make[1]: *** [CMakeFiles/Makefile2:189: src/CMakeFiles/am7xxx.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
Using the native Windows function Sleep() fixes the error.
Antonio Ospite [Mon, 26 Feb 2018 14:44:22 +0000 (15:44 +0100)]
HACKING.asciidoc: update the Windows build instructions
Antonio Ospite [Mon, 26 Feb 2018 14:39:12 +0000 (15:39 +0100)]
examples/CMakeLists.txt: restrict required libraries for avformat_open_input()
When checking if avformat_open_input() exists, link only with
FFMPEG_LIBAVFORMAT_LIBRARIES, this is more essential and also more
symmetric from a readability point of view.
Antonio Ospite [Mon, 26 Feb 2018 14:01:40 +0000 (15:01 +0100)]
examples/CMakeLists.txt: use a relative path for the include file
This is the correct way to include a file when calling
check_symbol_exists(), since the include paths are already set with:
set(CMAKE_REQUIRED_INCLUDES ${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS})
Antonio Ospite [Mon, 26 Feb 2018 13:53:48 +0000 (14:53 +0100)]
mingw_cross_toolchain.cmake: remove the deprecated CMAKE_FORCE_C_COMPILER
This fixes the following warning:
CMake Deprecation Warning at /usr/share/cmake-3.10/Modules/CMakeForceCompiler.cmake:69 (message):
The CMAKE_FORCE_C_COMPILER macro is deprecated. Instead just set
CMAKE_C_COMPILER and allow CMake to identify the compiler.
Antonio Ospite [Mon, 26 Feb 2018 10:11:44 +0000 (11:11 +0100)]
ChangeLog: remove the file, users can look at the git history for details
Antonio Ospite [Mon, 26 Feb 2018 10:03:13 +0000 (11:03 +0100)]
am7xxx-play: rename CODEC_FLAG_QSCALE to AV_CODEC_FLAG_QSCALE
In FFMpeg 3.5+ the unprefixed CODEC_* constants have been removed, only
the correspondent AV_CODEC_* ones are available.
This fixes a build failure:
.../examples/am7xxx-play.c: In function 'video_output_init':
.../examples/am7xxx-play.c:240:34: error: 'CODEC_FLAG_QSCALE' undeclared (first use in this function); did you mean 'AV_CODEC_FLAG_QSCALE'?
output_codec_ctx->flags |= CODEC_FLAG_QSCALE;
^~~~~~~~~~~~~~~~~
AV_CODEC_FLAG_QSCALE
Antonio Ospite [Thu, 28 Sep 2017 12:06:54 +0000 (14:06 +0200)]
contrib/howto-picopix.asciidoc: minor fixes
Antonio Ospite [Thu, 28 Sep 2017 12:02:34 +0000 (14:02 +0200)]
contrib: add a HOWTO for new users
Thanks to Étienne Morin, https://e-morin.com
Antonio Ospite [Thu, 28 Sep 2017 09:37:55 +0000 (11:37 +0200)]
contrib: add a patch to allow compiling libam7xxx on Ubuntu 14.04 LTS
The patch has not been tested, it is here just as a convenient starting
point for interested users.
Antonio Ospite [Thu, 28 Sep 2017 07:14:52 +0000 (09:14 +0200)]
doc/lsusb_dumps: show that the PicoPix 2330 and 2340 have the same descriptor
Rename lsusb_Philips-PicoPix-2330.log to show that the PicoPix 2340 has
the same descriptor.
Antonio Ospite [Tue, 14 Feb 2017 09:04:19 +0000 (10:04 +0100)]
am7xxx: simplify the device info caching operation in am7xxx_open_device()
Now that am7xxx_get_device_info() is more robust, the check in the
caller can be avoided.
Antonio Ospite [Tue, 14 Feb 2017 08:49:24 +0000 (09:49 +0100)]
am7xxx: make sure am7xxx_get_device_info() always returns sensible values
am7xxx_get_device_info() was not covering the case of a non-NULL output
parameter on the very first invocation, this case would not usually
happen in normal operation, but the problem was there: in that case the
output device_info structure would have contained garbage, as spotted by
the static analyzer:
.../src/am7xxx.c:1279:21: warning: The right operand of '<=' is a garbage value
original_width <= device_info.native_width &&
^ ~~~~~~~~~~~~~~~~~~~~~~~~
.../src/am7xxx.c:1288:39: warning: The right operand of '/' is a garbage value
width_ratio = (float)original_width / device_info.native_width;
^ ~~~~~~~~~~~~~~~~~~~~~~~~
While at it also fix the symmetric case of a NULL output parameter on
subsequent invocation: check that the output argument is non-NULL before
memcpy-ing to it.
Antonio Ospite [Thu, 30 Jun 2016 16:05:53 +0000 (18:05 +0200)]
am7xxx-play: get rid of the deprecated function av_free_packet()
This also fixes this warning:
warning: ‘av_free_packet’ is deprecated
Antonio Ospite [Thu, 30 Jun 2016 16:02:45 +0000 (18:02 +0200)]
am7xxx-play: get rd of the deprecated function avpicture_fill()
This also fixes this warning:
warning: ‘avpicture_fill’ is deprecated
Antonio Ospite [Thu, 30 Jun 2016 16:00:33 +0000 (18:00 +0200)]
am7xxx-play: get rid of the deprecated function avpicture_get_size()
This also fixes this warning:
warning: ‘avpicture_get_size’ is deprecated
Antonio Ospite [Thu, 30 Jun 2016 15:58:33 +0000 (17:58 +0200)]
am7xxx: simplify one return path in am7xxx_init()
Just return directly when there is no cleanup to do, it is more
readable.
Antonio Ospite [Wed, 29 Jun 2016 17:35:21 +0000 (19:35 +0200)]
examples/CMakeLists.txt: clean up Feature Test Macro Requirements defines
Setting _POSIX_C_SOURCE to the right value enables all the needed
functionalities.
This also avoids using _DEFAULT_SOURCE explicitly to get rid of the
_BSD_SOURCE deprecation warning.
Antonio Ospite [Wed, 29 Jun 2016 17:32:29 +0000 (19:32 +0200)]
src/CMakeLists.txt: fix a compilation warning about _BSD_SOURCE deprecation
Fix this warning from recent compilers:
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
Antonio Ospite [Wed, 29 Jun 2016 17:04:28 +0000 (19:04 +0200)]
am7xxx-play: add more informations about how the raw format is handled
This new comment should make it easier to understand why there is no
need to encode the frame when outputting data in the raw format
supported by the device
Antonio Ospite [Wed, 29 Jun 2016 17:02:21 +0000 (19:02 +0200)]
am7xxx-play: output more informative message when get_x_screen_size() is a stub
Antonio Ospite [Wed, 29 Jun 2016 16:56:49 +0000 (18:56 +0200)]
HACKING.asciidoc: mention libxcb1-dev as a build dependency
Without libxcb1-dev am7xxx-play can't figure out the screen dimensions.
Antonio Ospite [Sat, 9 Jan 2016 12:18:40 +0000 (13:18 +0100)]
Fix a missing parenthesis in some output strings
Antonio Ospite [Sat, 9 Jan 2016 12:17:49 +0000 (13:17 +0100)]
am7xxx-modeswitch: adjust comment formatting
Antonio Ospite [Wed, 18 Nov 2015 15:52:39 +0000 (16:52 +0100)]
NEWS: fix a typo s/am7xx-play/am7xxx-play/
Antonio Ospite [Tue, 17 Nov 2015 17:42:39 +0000 (18:42 +0100)]
am7xxx: bump _POSIX_C_SOURCE to 200112L for lroundf()
The library code uses lroundf() from math.h but some compilers may warn
about an implicit definition of it, so make sure it it actually
available by following the requirements from the LROUND(3) man page.
Antonio Ospite [Tue, 17 Nov 2015 17:41:18 +0000 (18:41 +0100)]
am7xxx: remove a useless empty line
Antonio Ospite [Tue, 17 Nov 2015 15:37:28 +0000 (16:37 +0100)]
Release version 0.1.6
Antonio Ospite [Tue, 17 Nov 2015 15:30:35 +0000 (16:30 +0100)]
Refresh contrib/performance/0001-Instrument-code-with-fps-meter.patch
Antonio Ospite [Tue, 17 Nov 2015 14:46:15 +0000 (15:46 +0100)]
Strip trailing spaces here and there
Antonio Ospite [Tue, 17 Nov 2015 12:21:31 +0000 (13:21 +0100)]
am7xxx-play: fix warning about deprecated fields in the output codec
.../examples/am7xxx-play.c:238:2:
warning: ‘lmin’ is deprecated [-Wdeprecated-declarations]
output_codec_ctx->mb_lmin = output_codec_ctx->lmin = output_codec_ctx->qmin * FF_QP2LAMBDA;
^
.../examples/am7xxx-play.c:239:2:
warning: ‘lmax’ is deprecated [-Wdeprecated-declarations]
output_codec_ctx->mb_lmax = output_codec_ctx->lmax = output_codec_ctx->qmax * FF_QP2LAMBDA;
^
Antonio Ospite [Tue, 17 Nov 2015 12:10:40 +0000 (13:10 +0100)]
am7xxx-play: don't dump the last frame unconditionally
Stop dumping the last frame unconditionally in DEBUG mode, it's not the
expected behavior; instead add an option to explicitly enable dumping
the last frame but still leave this active only in DEBUG mode.
Antonio Ospite [Tue, 17 Nov 2015 09:47:36 +0000 (10:47 +0100)]
am7xxx-play: fix runtime warnings from ffmpeg
ffmpeg emits warnings at runtime about some AVFrame fields not being
set:
[mjpeg @ 0x669040] AVFrame.format is not set
[mjpeg @ 0x669040] AVFrame.width or height is not set
This happens in a loop so the message is repeated over and over and
becomes annoying, fix this by setting the missing values.
Antonio Ospite [Tue, 17 Nov 2015 09:43:46 +0000 (10:43 +0100)]
TODO: add some ideas for minor enhancements
Antonio Ospite [Tue, 17 Nov 2015 09:41:58 +0000 (10:41 +0100)]
am7xxx-play: fix an error message, we now use am7xxx_send_image_async()
Antonio Ospite [Sat, 7 Nov 2015 21:33:03 +0000 (22:33 +0100)]
Fix some format string warnings from clang
Building with clang gives some format string warnings as below, fix them
by using the correct format string when printing out the values.
.../libam7xxx/src/am7xxx.c:804:38: warning:
format specifies type 'unsigned char' but the argument has type 'int'
[-Wformat]
(*dev)->desc->configuration, current_configuration);
^~~~~~~~~~~~~~~~~~~~~
.../libam7xxx/src/am7xxx.c:65:85: note:
expanded from macro 'debug'
#define debug(ctx, ...) log_message(ctx, AM7XXX_LOG_DEBUG, __func__, 0, __VA_ARGS__)
^
1 warning generated.
[...]
.../libam7xxx/examples/am7xxx-modeswitch.c:75:5:
warning: format specifies type 'unsigned char' but the argument has type
'int' [-Wformat]
AM7XXX_STORAGE_CONFIGURATION);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
.../libam7xxx/examples/am7xxx-modeswitch.c:26:38:
note: expanded from macro 'AM7XXX_STORAGE_CONFIGURATION'
#define AM7XXX_STORAGE_CONFIGURATION 1
^
.../libam7xxx/examples/am7xxx-modeswitch.c:87:4:
warning: format specifies type 'unsigned char' but the argument has type
'int' [-Wformat]
AM7XXX_STORAGE_INTERFACE);
^~~~~~~~~~~~~~~~~~~~~~~~
.../libam7xxx/examples/am7xxx-modeswitch.c:27:38:
note: expanded from macro 'AM7XXX_STORAGE_INTERFACE'
#define AM7XXX_STORAGE_INTERFACE 0
^
.../libam7xxx/examples/am7xxx-modeswitch.c:104:4:
warning: format specifies type 'unsigned char' but the argument has type
'int' [-Wformat]
AM7XXX_STORAGE_CONFIGURATION, current_configuration);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
.../libam7xxx/examples/am7xxx-modeswitch.c:26:38:
note: expanded from macro 'AM7XXX_STORAGE_CONFIGURATION'
#define AM7XXX_STORAGE_CONFIGURATION 1
^
.../libam7xxx/examples/am7xxx-modeswitch.c:104:34:
warning: format specifies type 'unsigned char' but the argument has type
'int' [-Wformat]
AM7XXX_STORAGE_CONFIGURATION, current_configuration);
^~~~~~~~~~~~~~~~~~~~~
4 warnings generated.
Andreas Cadhalpun [Sun, 1 Nov 2015 23:00:00 +0000 (00:00 +0100)]
am7xxx-play: Replace deprecated FFmpeg API symbol PIX_FMT_NV12
PIX_FMT_NV12 is not going to be available in ffmpeg 2.9 so prepare for
that by using AV_PIX_FMT_NV12, which BTW has been available for quite
some time already.
Antonio Ospite [Wed, 8 Jul 2015 09:26:13 +0000 (11:26 +0200)]
am7xxx: put some spaces around operators
Antonio Ospite [Fri, 26 Jun 2015 08:25:26 +0000 (10:25 +0200)]
am7xxx-modeswitch: fix the Length field in the switch command
The switch_command is a USB storage message, the bulk_cb_wrap structure
from include/linux/usb/storage.h in the Linux kernel shows the fields
meanings:
struct bulk_cb_wrap {
__le32 Signature; /* contains 'USBC' */
__u32 Tag; /* unique per command id */
__le32 DataTransferLength; /* size of data */
__u8 Flags; /* direction in bit 0 */
__u8 Lun; /* LUN normally 0 */
__u8 Length; /* length of the CDB */
__u8 CDB[16]; /* max command */
};
In switch_command the data in CDB is 16 bytes long (0x10), so using 0x0c
was wrong, it worked on some devices but it did not on others.
Use the correct value.
Thanks-to: Balasubramanian S <sbala214@gmail.com>
Antonio Ospite [Wed, 10 Jun 2015 11:30:09 +0000 (13:30 +0200)]
am7xxx: remove a redundant debug message in open_device()
The calling function will show an error for the same condition.
Antonio Ospite [Wed, 10 Jun 2015 11:16:02 +0000 (13:16 +0200)]
am7xxx: use debug() instead of fatal() in add_new_device()
We are guaranteed that ctx is non-null by a previous check.
Antonio Ospite [Wed, 10 Jun 2015 10:51:38 +0000 (12:51 +0200)]
am7xxx: rename the "function" argument of log_message() to "function_name"
This express better the meaning of the variable.
Antonio Ospite [Wed, 10 Jun 2015 10:42:39 +0000 (12:42 +0200)]
am7xxx: split declaration and initialization of the "transferred" variable
This makes it clearer than we mean to initialize the variable to
0 before _each_ libusb_bulk_transfer() call.
Antonio Ospite [Wed, 10 Jun 2015 10:41:57 +0000 (12:41 +0200)]
am7xxx-modeswitch: add a blank line for readability
Antonio Ospite [Wed, 10 Jun 2015 10:38:21 +0000 (12:38 +0200)]
am7xxx-modeswitch: set USB configuration following libusb documentation
For the details see: http://libusb.sourceforge.net/api-1.0/caveats.html
Antonio Ospite [Wed, 10 Jun 2015 10:22:57 +0000 (12:22 +0200)]
am7xxx-modeswitch: reorder declarations of variables
Antonio Ospite [Wed, 10 Jun 2015 10:21:41 +0000 (12:21 +0200)]
am7xxx-modeswitch: remove unneeded assignment
Antonio Ospite [Wed, 10 Jun 2015 10:18:49 +0000 (12:18 +0200)]
am7xxx-modeswitch: improve messages relative to libusb failures
Antonio Ospite [Wed, 10 Jun 2015 10:12:22 +0000 (12:12 +0200)]
am7xxx-modeswitch: use LIBUSB_LOG_LEVEL_INFO instead of a magic number
Antonio Ospite [Wed, 10 Jun 2015 10:09:31 +0000 (12:09 +0200)]
am7xxx-modeswitch: use libusb_set_auto_detach_kernel_driver()
Antonio Ospite [Wed, 10 Jun 2015 10:07:20 +0000 (12:07 +0200)]
am7xxx: print an error message when libusb_init fails
Antonio Ospite [Wed, 10 Jun 2015 09:05:46 +0000 (11:05 +0200)]
am7xxx: improve the comment about setting a new configuration
Explain better why it is not needed to detach all kernel drivers in most
situations.
Antonio Ospite [Wed, 10 Jun 2015 09:03:58 +0000 (11:03 +0200)]
am7xxx: clarify a comment about copying data in send_data_async()
Antonio Ospite [Mon, 20 Apr 2015 15:19:10 +0000 (17:19 +0200)]
am7xxx: release the interface when needed in open_device()
Release the interface when bailing out of open_device() after the
interface has been claimed.
Antonio Ospite [Mon, 20 Apr 2015 15:09:19 +0000 (17:09 +0200)]
am7xxx: check the return value of libusb_get_configuration()
libusb_get_configuration() can still fail after the device has been
opened, so check its actual return value before trusting the returned
current_configuration.
Antonio Ospite [Mon, 20 Apr 2015 14:42:02 +0000 (16:42 +0200)]
am7xxx: fix the error path of the second configuration check
Return a negative error value when the configuration check done after
claiming the interface fails, and also fix the output messages.
Antonio Ospite [Mon, 20 Apr 2015 14:32:04 +0000 (16:32 +0200)]
am7xxx: add comment about detaching kernel drivers before setting configuration
Antonio Ospite [Mon, 20 Apr 2015 14:30:53 +0000 (16:30 +0200)]
am7xxx: add some spaces in a comment
Antonio Ospite [Mon, 20 Apr 2015 14:28:47 +0000 (16:28 +0200)]
am7xxx: fix the coding style used to represent pointers
Antonio Ospite [Sun, 25 Jan 2015 23:20:20 +0000 (00:20 +0100)]
am7xxx: use libusb_error_name to print the return value of libusb calls
This makes the debug output more useful.
Antonio Ospite [Sun, 25 Jan 2015 23:05:27 +0000 (00:05 +0100)]
am7xxx: detach kernel driver before claiming the interface
This is needed on some systems like Ubuntu 14.04, but apparently not on
Debian ones.
Thanks-to: Andrea Console <andreaconsole@gmail.com>
Antonio Ospite [Sun, 25 Jan 2015 23:00:25 +0000 (00:00 +0100)]
am7xxx: use a saner approach when setting the USB configuration
Follow the advices from
http://libusb.sourceforge.net/api-1.0/caveats.html
Antonio Ospite [Sun, 25 Jan 2015 22:42:42 +0000 (23:42 +0100)]
am7xxx: when listing possible return values use "or" in place of "and"
Antonio Ospite [Sun, 25 Jan 2015 22:40:35 +0000 (23:40 +0100)]
am7xxx: mention open_device() in the comment about scan_devices()
Antonio Ospite [Sun, 25 Jan 2015 22:27:37 +0000 (23:27 +0100)]
am7xxx: clean up the exit path in open_device()
Antonio Ospite [Sun, 25 Jan 2015 22:23:33 +0000 (23:23 +0100)]
am7xxx: comment on the loop termination in SCAN_OP_OPEN_DEVICE mode
Antonio Ospite [Sun, 25 Jan 2015 22:12:03 +0000 (23:12 +0100)]
am7xxx: factor out an open_device() function from scan_devices()
This reduces the indentation level and makes the code more readable, now
it will be easier to improve open_device().
Antonio Ospite [Sun, 25 Jan 2015 21:12:27 +0000 (22:12 +0100)]
am7xxx: make a comment clearer about SCAN_OP_OPEN_DEVICE
Antonio Ospite [Sun, 25 Jan 2015 20:34:13 +0000 (21:34 +0100)]
TODO: add another item about the style used in cmake files
Antonio Ospite [Sun, 25 Jan 2015 20:33:34 +0000 (21:33 +0100)]
doc/lsusb_dumps: add lsusb_Philips-PicoPix-1020.log
Antonio Ospite [Tue, 30 Dec 2014 22:47:04 +0000 (23:47 +0100)]
examples: fix handling optional libraries in target_link_libraries()
am7xxx-play can compile just fine without XCB, but cmake was being
overly strict when XCB was missing.
Antonio Ospite [Sat, 22 Nov 2014 23:03:08 +0000 (00:03 +0100)]
am7xxx-play: improve a comment
Antonio Ospite [Sat, 22 Nov 2014 22:58:36 +0000 (23:58 +0100)]
am7xxx-play: fix a possible case of use before initialization
The got_packet variable is assigned inside an internal "if" of the while
loop, but it is also used in the checks at the end of the while loop,
and it is possible to get to this part before having ever assigned the
variable, so in order to behave correctly initialize the variable before
the loop starts.
Antonio Ospite [Wed, 5 Nov 2014 10:38:19 +0000 (11:38 +0100)]
doc: update Doxyfile.in
In particular this fixes the following warnings from doxygen:
Warning: Tag `XML_SCHEMA' at line 235 of file `Doxyfile.in' has become obsolete.
This tag has been removed.
Warning: Tag `XML_DTD' at line 236 of file `Doxyfile.in' has become obsolete.
This tag has been removed.
Antonio Ospite [Mon, 7 Jul 2014 13:53:22 +0000 (15:53 +0200)]
examples: the examples were always meant to be all under GPL-3+
Antonio Ospite [Thu, 15 May 2014 10:44:07 +0000 (12:44 +0200)]
Release version 0.1.5
Antonio Ospite [Thu, 15 May 2014 10:33:41 +0000 (12:33 +0200)]
HACKING.asciidoc: update Windows cross-build section to use libav10
Antonio Ospite [Mon, 12 May 2014 21:02:28 +0000 (23:02 +0200)]
am7xxx-play: port to libav10
Antonio Ospite [Thu, 8 May 2014 10:59:02 +0000 (12:59 +0200)]
Update email address and copyright years
Antonio Ospite [Thu, 8 May 2014 10:37:44 +0000 (12:37 +0200)]
contrib/performance/README: fix some typos
Antonio Ospite [Thu, 8 May 2014 10:27:23 +0000 (12:27 +0200)]
cosmetics: remove some trailing spaces
Antonio Ospite [Thu, 8 May 2014 10:26:04 +0000 (12:26 +0200)]
README.asciidoc: update instructions to test libam7xxx on Windows
Antonio Ospite [Thu, 8 May 2014 10:15:16 +0000 (12:15 +0200)]
HACKING.asciidoc: update the build instructions for Windows
Antonio Ospite [Thu, 8 May 2014 09:37:34 +0000 (11:37 +0200)]
am7xxx: don't use partial designated initializers
Compilers may warn about missing fields in initializers when more checks
are enabled with STRICT_COMPILATION_CHECKS=ON:
.../src/am7xxx.c:1131:31: error: missing field 'direction' initializer [-Werror,-Wmissing-field-initializers]
struct am7xxx_header h = { 0 };
^
1 error generated.