AndrewFromMelbourne / raspi2png

Utility to take a snapshot of the Raspberry Pi screen and save it as a PNG file
MIT License
213 stars 78 forks source link

Kind Request: Universal Screenshot Tool rather pi board specific #36

Closed 2play closed 2 years ago

2play commented 2 years ago

@AndrewFromMelbourne Hello I can see its using the bcm library for compiling/use on pi.

Would you kindly consider making a universal version screenshot tool?

AndrewFromMelbourne commented 2 years ago

There is a Universal Screenshot Tool in fb2png. The nice thing about rsapi2png is that it could capture GPU output. There is no longer support for DispmanX on the Raspberry Pi, so this tool is no longer of much use.

2play commented 2 years ago

Dear @AndrewFromMelbourne thank you for still checking and replying on the subject. I found a tool that does all I need on rockchip boards, not bcm lib dependent and works on x11, framebuffer and kms.

saper-2 commented 2 years ago

There is a Universal Screenshot Tool in fb2png. The nice thing about rsapi2png is that it could capture GPU output. There is no longer support for DispmanX on the Raspberry Pi, so this tool is no longer of much use.

Hi, sorry for tapping into this topic 😄 Is there any tool that can now (on Pi that use latest raspbian 11 (or whatever is called now 😉 )) tap into GPU output and "grab screenshot"?

AndrewFromMelbourne commented 2 years ago

@saper-2 not that I know of. I have not been involved with Raspberry Pi's for a number of years. It would be best to ask this question in the Raspberry Pi forums.

2play commented 2 years ago

@saper-2 get this and compile it (very fast) put the binary to your path or copy to /usr/bin and it will create a snapshot of anything on raspberry. I dont recall is Ive tested on Bullseye version but if not i have another for you the screenshot tool would make jpg out or anything you are on (desktop, framebuffer, kms) https://github.com/info-beamer/tools/tree/master/screenshot if you dont know how to compile let us know

saper-2 commented 2 years ago

@2play thanks for info, looks promising, but I have problem with linking:

pi@raspberrypi:~/tools/tools/screenshot $ make
cc -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM -std=gnu99 -fgnu89-inline  -I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -O3 -Wno-psabi -s -L/opt/vc/lib/ -lbcm_host -lvcos -lvchiq_arm -lpthread -lrt -ljpeg screenshot.c -o screenshot
/usr/bin/ld: /tmp/ccak44ng.o: in function `main':
screenshot.c:(.text.startup+0x34): undefined reference to `bcm_host_init'
/usr/bin/ld: screenshot.c:(.text.startup+0x3c): undefined reference to `vc_dispmanx_display_open'
/usr/bin/ld: screenshot.c:(.text.startup+0x48): undefined reference to `vc_dispmanx_display_get_info'
/usr/bin/ld: screenshot.c:(.text.startup+0x64): undefined reference to `vc_dispmanx_resource_create'
/usr/bin/ld: screenshot.c:(.text.startup+0x78): undefined reference to `vc_dispmanx_snapshot'
/usr/bin/ld: screenshot.c:(.text.startup+0x94): undefined reference to `vc_dispmanx_rect_set'
/usr/bin/ld: screenshot.c:(.text.startup+0xc4): undefined reference to `vc_dispmanx_resource_read_data'
/usr/bin/ld: screenshot.c:(.text.startup+0xcc): undefined reference to `vc_dispmanx_resource_delete'
/usr/bin/ld: screenshot.c:(.text.startup+0xd8): undefined reference to `vc_dispmanx_display_close'
/usr/bin/ld: screenshot.c:(.text.startup+0xe8): undefined reference to `jpeg_std_error'
/usr/bin/ld: screenshot.c:(.text.startup+0x104): undefined reference to `jpeg_CreateCompress'
/usr/bin/ld: screenshot.c:(.text.startup+0x118): undefined reference to `jpeg_stdio_dest'
/usr/bin/ld: screenshot.c:(.text.startup+0x134): undefined reference to `jpeg_set_defaults'
/usr/bin/ld: screenshot.c:(.text.startup+0x144): undefined reference to `jpeg_set_quality'
/usr/bin/ld: screenshot.c:(.text.startup+0x150): undefined reference to `jpeg_start_compress'
/usr/bin/ld: screenshot.c:(.text.startup+0x45c): undefined reference to `jpeg_write_scanlines'
/usr/bin/ld: screenshot.c:(.text.startup+0x480): undefined reference to `jpeg_finish_compress'
/usr/bin/ld: screenshot.c:(.text.startup+0x488): undefined reference to `jpeg_destroy_compress'
collect2: error: ld returned 1 exit status
make: *** [Makefile:8: screenshot] Error 1

I did some google-fu and find somewhere that on arm64 might not everything compile properly (there is some issues with libraries or library paths). I'll try try armhf (32bit) raspbian image too. -- edited -- on armhf same. I tried tinkering with path a bit (for LD -L and -I but didn't work either...)

pi@raspberrypi:~/sshot/tools/screenshot $ find /usr/lib -iname "libbcm_host.*"
/usr/lib/arm-linux-gnueabihf/libbcm_host.so.0
/usr/lib/arm-linux-gnueabihf/libbcm_host.so
pi@raspberrypi:~ $ find /usr -iname "*jpeg*.h"
/usr/include/jpeglib.h
/usr/include/jpegint.h
/usr/include/turbojpeg.h
pi@raspberrypi:~ $ find /usr -iname "*jpeg*.so"
/usr/lib/arm-linux-gnueabihf/libjpeg.so
/usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstjpeg.so
/usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstjpegformat.so
/usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstopenjpeg.so
/usr/lib/arm-linux-gnueabihf/qt5/plugins/imageformats/libqjpeg.so
/usr/lib/arm-linux-gnueabihf/libturbojpeg.so
/usr/lib/arm-linux-gnueabihf/vlc/plugins/codec/libjpeg_plugin.so
/usr/lib/arm-linux-gnueabihf/vlc/plugins/mux/libmux_mpjpeg_plugin.so
/usr/lib/arm-linux-gnueabihf/vlc/plugins/demux/libmjpeg_plugin.so
/usr/lib/arm-linux-gnueabihf/imlib2/loaders/jpeg.so
/usr/lib/arm-linux-gnueabihf/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jpeg.so
...
pi@raspberrypi:~/sshot/tools/screenshot $ make
cc -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM -std=gnu99 -fgnu89-inline  -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -O3 -Wno-psabi -s -I/usr/include -L/opt/vc/lib -L/usr/lib/arm-linux-gnueabihf -lbcm_host -lvcos -lvchiq_arm -lpthread -lrt -ljpeg screenshot.c -o screenshot
/usr/bin/ld: /tmp/ccuEJgUX.o: in function `main':
screenshot.c:(.text.startup+0x20): undefined reference to `bcm_host_init'
/usr/bin/ld: screenshot.c:(.text.startup+0x28): undefined reference to `vc_dispmanx_display_open'
/usr/bin/ld: screenshot.c:(.text.startup+0x34): undefined reference to `vc_dispmanx_display_get_info'
/usr/bin/ld: screenshot.c:(.text.startup+0x54): undefined reference to `vc_dispmanx_resource_create'
/usr/bin/ld: screenshot.c:(.text.startup+0x70): undefined reference to `vc_dispmanx_snapshot'
/usr/bin/ld: screenshot.c:(.text.startup+0x8c): undefined reference to `vc_dispmanx_rect_set'
/usr/bin/ld: screenshot.c:(.text.startup+0xb8): undefined reference to `vc_dispmanx_resource_read_data'
/usr/bin/ld: screenshot.c:(.text.startup+0xc0): undefined reference to `vc_dispmanx_resource_delete'
/usr/bin/ld: screenshot.c:(.text.startup+0xd0): undefined reference to `vc_dispmanx_display_close'
/usr/bin/ld: screenshot.c:(.text.startup+0xe0): undefined reference to `jpeg_std_error'
/usr/bin/ld: screenshot.c:(.text.startup+0xf4): undefined reference to `jpeg_CreateCompress'
/usr/bin/ld: screenshot.c:(.text.startup+0x104): undefined reference to `jpeg_stdio_dest'
/usr/bin/ld: screenshot.c:(.text.startup+0x12c): undefined reference to `jpeg_set_defaults'
/usr/bin/ld: screenshot.c:(.text.startup+0x13c): undefined reference to `jpeg_set_quality'
/usr/bin/ld: screenshot.c:(.text.startup+0x148): undefined reference to `jpeg_start_compress'
/usr/bin/ld: screenshot.c:(.text.startup+0x1d4): undefined reference to `jpeg_write_scanlines'
/usr/bin/ld: screenshot.c:(.text.startup+0x1f4): undefined reference to `jpeg_finish_compress'
/usr/bin/ld: screenshot.c:(.text.startup+0x1fc): undefined reference to `jpeg_destroy_compress'
collect2: error: ld returned 1 exit status
make: *** [Makefile:9: screenshot] Error 1

Here I checked what libjpeg.so and libbcm_host.so exports:

root@raspberrypi:~# nm -D -C -g /usr/lib/arm-linux-gnueabihf/libbcm_host.so
00003cb8 T bcm_host_deinit
00003d60 T bcm_host_get_model_type
00003cc0 T bcm_host_get_peripheral_address
00003d00 T bcm_host_get_peripheral_size
00003e90 T bcm_host_get_processor_id
00003d3c T bcm_host_get_sdram_address
00003af4 T bcm_host_init
00003f60 T bcm_host_is_fkms_active
00003f8c T bcm_host_is_kms_active
00003f48 T bcm_host_is_model_pi4
00023070 B cechost_log_category
         U __ctype_b_loc@GLIBC_2.4
         w __cxa_finalize@GLIBC_2.4
         U __errno_location@GLIBC_2.4
         U exit@GLIBC_2.4
         U fclose@GLIBC_2.4
         U fgets@GLIBC_2.4
         U fopen64@GLIBC_2.4
         U fread@GLIBC_2.4
         U free@GLIBC_2.4
         U fseek@GLIBC_2.4
         U getenv@GLIBC_2.4
         w __gmon_start__
00003a00 T graphics_get_display_size
00003ab0 T host_app_message_handler
         U __isoc99_sscanf@GLIBC_2.7
         w _ITM_deregisterTMCloneTable
         w _ITM_registerTMCloneTable
         U malloc@GLIBC_2.4
         U memcpy@GLIBC_2.4
         U __memcpy_chk@GLIBC_2.4
         U memset@GLIBC_2.4
         U nanosleep@GLIBC_2.4
         U pthread_mutex_destroy@GLIBC_2.4
         U pthread_mutex_init@GLIBC_2.4
         U pthread_mutex_lock@GLIBC_2.4
         U pthread_mutex_unlock@GLIBC_2.4
         U puts@GLIBC_2.4
000040d4 T release_gencmd_service
         U sem_destroy@GLIBC_2.4
         U sem_getvalue@GLIBC_2.4
         U sem_init@GLIBC_2.4
         U sem_post@GLIBC_2.4
         U sem_wait@GLIBC_2.4
         U single_get_func_table
         U __sprintf_chk@GLIBC_2.4
         U __stack_chk_fail@GLIBC_2.4
         U __stack_chk_guard@GLIBC_2.4
         U strcmp@GLIBC_2.4
         U strlen@GLIBC_2.4
         U strncmp@GLIBC_2.4
         U strstr@GLIBC_2.4
         U strtol@GLIBC_2.4
0000406c T use_gencmd_service
0000b290 T vc_cec_add_device
0000ab28 T vc_cec_alloc_logical_address
0000a828 T vc_cec_deregister_all
0000a820 T vc_cec_deregister_command
0000af4c T vc_cec_device_type
0000aa5c T vc_cec_get_logical_address
0000ad94 T vc_cec_get_physical_address
0000ab50 T vc_cec_get_topology
0000ae80 T vc_cec_get_vendor_id
0000af9c T vc_cec_param2message
0000b094 T vc_cec_poll_address
0000a818 T vc_cec_register_all
0000a694 T vc_cec_register_callback
0000a810 T vc_cec_register_command
0000ab3c T vc_cec_release_logical_address
0000b4d4 T vc_cec_send_ActiveSource
0000b450 T vc_cec_send_FeatureAbort
0000b560 T vc_cec_send_ImageViewOn
0000b718 T vc_cec_send_MenuStatus
0000a830 T vc_cec_send_message
0000af70 T vc_cec_send_message2
0000b7a4 T vc_cec_send_ReportPhysicalAddress
0000b5d8 T vc_cec_send_SetOSDString
0000b6a0 T vc_cec_send_Standby
0000b15c T vc_cec_set_logical_address
0000ad34 T vc_cec_set_osd_name
0000b3cc T vc_cec_set_passive
0000ac78 T vc_cec_set_vendor_id
0000cc88 T vc_dispmanx_display_close
0000cac4 T vc_dispmanx_display_get_info
0000c7d8 T vc_dispmanx_display_open
0000c83c T vc_dispmanx_display_open_mode
0000c8bc T vc_dispmanx_display_open_offscreen
0000c93c T vc_dispmanx_display_reconfigure
0000ca3c T vc_dispmanx_display_set_background
0000c9bc T vc_dispmanx_display_set_destination
0000cda8 T vc_dispmanx_element_add
0000d150 T vc_dispmanx_element_change_attributes
0000cfa4 T vc_dispmanx_element_change_layer
0000cf20 T vc_dispmanx_element_change_source
0000d028 T vc_dispmanx_element_modified
0000d0d0 T vc_dispmanx_element_remove
0000c3ec T vc_dispmanx_query_image_formats
0000c3dc T vc_dispmanx_rect_set
0000c418 T vc_dispmanx_resource_create
0000c4c4 T vc_dispmanx_resource_delete
0000c4a0 T vc_dispmanx_resource_get_image_handle
0000c650 T vc_dispmanx_resource_read_data
0000d2f4 T vc_dispmanx_resource_set_palette
0000c4e8 T vc_dispmanx_resource_write_data
0000d588 T vc_dispmanx_send_command
0000d58c T vc_dispmanx_send_command_reply
0000d270 T vc_dispmanx_snapshot
0000c1fc T vc_dispmanx_stop
0000ccac T vc_dispmanx_update_start
0000ccd0 T vc_dispmanx_update_submit
0000cd84 T vc_dispmanx_update_submit_sync
0000d44c T vc_dispmanx_vsync_callback
00004728 T vc_gencmd
0000413c T vc_gencmd_init
000049a4 T vc_gencmd_number_property
00004570 T vc_gencmd_read_response
000044f4 T vc_gencmd_send
000043f4 T vc_gencmd_send_list
00004350 T vc_gencmd_stop
000047d4 T vc_gencmd_string_property
00004a70 T vc_gencmd_until
00004e40 T vc_gpuserv_deinit
00004e9c T vc_gpuserv_execute_code
00004c00 T vc_gpuserv_init
0000d6fc T vchi2service_status
0000d724 T vchi2service_status_string
         U vchi_bulk_queue_receive
         U vchi_bulk_queue_transmit
         U vchi_connect
         U vchi_create_connection
         U vchi_initialise
         U vchi_mphi_message_driver_func_table
         U vchi_msg_dequeue
         U vchi_msg_queue
         U vchi_msg_queuev
         U vchiq_connect
         U vchiq_initialise
         U vchiq_open_service
         U vchiq_queue_message
         U vchiq_release_message
         U vchi_service_close
         U vchi_service_open
         U vchi_service_release
         U vchi_service_use
00003ac0 T vc_host_get_vchi_state
         U vcos_generic_mem_alloc_aligned
         U vcos_generic_mem_calloc
         U vcos_generic_mem_free
         U vcos_init
         U vcos_log_get_default_category
         U vcos_log_impl
         U vcos_log_register
         U vcos_once
         U vcos_pthreads_map_errno
         U vcos_thread_attr_init
         U vcos_thread_create
         U vcos_thread_join
00007708 T vc_tv_disable_copyprotect
00007694 T vc_tv_disable_copyprotect_id
00007674 T vc_tv_enable_copyprotect
000075a8 T vc_tv_enable_copyprotect_id
00008ee0 T vc_tv_get_attached_devices
00008df0 T vc_tv_get_device_id
00008d04 T vc_tv_get_device_id_id
0000609c T vc_tv_get_display_state
00006010 T vc_tv_get_display_state_id
00005ff8 T vc_tv_get_state
00005f6c T vc_tv_get_state_id
00007568 T vc_tv_hdmi_audio_supported
00007468 T vc_tv_hdmi_audio_supported_id
00008074 T vc_tv_hdmi_ddc_read
00007f50 T vc_tv_hdmi_ddc_read_id
00007870 T vc_tv_hdmi_get_av_latency
000077fc T vc_tv_hdmi_get_av_latency_id
0000836c T vc_tv_hdmi_get_property
00008254 T vc_tv_hdmi_get_property_id
00008cc0 T vc_tv_hdmi_get_supported_modes
00008bc0 T vc_tv_hdmi_get_supported_modes_id
00007338 T vc_tv_hdmi_get_supported_modes_new
00006ab8 T vc_tv_hdmi_get_supported_modes_new_id
00007448 T vc_tv_hdmi_mode_supported
0000737c T vc_tv_hdmi_mode_supported_id
000065f0 T vc_tv_hdmi_power_on_best
0000670c T vc_tv_hdmi_power_on_best_3d
000064dc T vc_tv_hdmi_power_on_best_3d_id
000063c4 T vc_tv_hdmi_power_on_best_id
00008eb4 T vc_tv_hdmi_power_on_explicit
00008e08 T vc_tv_hdmi_power_on_explicit_id
00006908 T vc_tv_hdmi_power_on_explicit_new
00006820 T vc_tv_hdmi_power_on_explicit_new_id
00006240 T vc_tv_hdmi_power_on_preferred
00006304 T vc_tv_hdmi_power_on_preferred_3d
0000617c T vc_tv_hdmi_power_on_preferred_3d_id
000060b4 T vc_tv_hdmi_power_on_preferred_id
0000811c T vc_tv_hdmi_set_attached
000080a0 T vc_tv_hdmi_set_attached_id
00007d94 T vc_tv_hdmi_set_display_options
00007c84 T vc_tv_hdmi_set_display_options_id
00007970 T vc_tv_hdmi_set_hdcp_key
00007884 T vc_tv_hdmi_set_hdcp_key_id
00007b24 T vc_tv_hdmi_set_hdcp_revoked_list
00007988 T vc_tv_hdmi_set_hdcp_revoked_list_id
0000823c T vc_tv_hdmi_set_property
00008134 T vc_tv_hdmi_set_property_id
00007c58 T vc_tv_hdmi_set_spd
00007b44 T vc_tv_hdmi_set_spd_id
00008384 T vc_tv_notification_name
00006aa4 T vc_tv_power_off
00006a34 T vc_tv_power_off_id
00005c4c T vc_tv_register_callback
00006a14 T vc_tv_sdtv_power_on
00006934 T vc_tv_sdtv_power_on_id
000077e4 T vc_tv_show_info
0000771c T vc_tv_show_info_id
00007eac T vc_tv_test_mode_start
00007de0 T vc_tv_test_mode_start_id
00007f3c T vc_tv_test_mode_stop
00007ecc T vc_tv_test_mode_stop_id
00005d4c T vc_tv_unregister_callback
00005e4c T vc_tv_unregister_callback_full
00009fa4 T vc_vchi_cec_init
0000a41c T vc_vchi_cec_stop
0000bf10 T vc_vchi_dispmanx_init
00004144 T vc_vchi_gencmd_init
00008f28 T vc_vchi_tv_init
000059e4 T vc_vchi_tv_stop
         U __vsnprintf_chk@GLIBC_2.4
00003cbc T wfc_stream_await_buffer
root@raspberrypi:~# nm -D -C -g /usr/lib/arm-linux-gnueabihf/libjpeg.so
         U __ctype_b_loc@GLIBC_2.4
         w __cxa_finalize@GLIBC_2.4
         U exit@GLIBC_2.4
         U fclose@GLIBC_2.4
         U feof@GLIBC_2.4
         U ferror@GLIBC_2.4
         U fflush@GLIBC_2.4
         U fgets@GLIBC_2.4
         U fopen@GLIBC_2.4
         U __fprintf_chk@GLIBC_2.4
         U fread@GLIBC_2.4
         U free@GLIBC_2.4
         U fwrite@GLIBC_2.4
         U getenv@GLIBC_2.4
         w __gmon_start__
         U __isoc99_sscanf@GLIBC_2.7
         w _ITM_deregisterTMCloneTable
         w _ITM_registerTMCloneTable
0002a6dc T jcopy_block_row@@LIBJPEG_6.2
0002a6a4 T jcopy_sample_rows@@LIBJPEG_6.2
0002a674 T jdiv_round_up@@LIBJPEG_6.2
00028ab8 T jinit_1pass_quantizer@@LIBJPEG_6.2
0002a4d8 T jinit_2pass_quantizer@@LIBJPEG_6.2
0002e278 T jinit_arith_decoder@@LIBJPEG_6.2
0002d098 T jinit_arith_encoder@@LIBJPEG_6.2
00003a84 T jinit_c_coef_controller@@LIBJPEG_6.2
0000d34c T jinit_c_main_controller@@LIBJPEG_6.2
0000ebf8 T jinit_c_master_control@@LIBJPEG_6.2
00004eb4 T jinit_color_converter@@LIBJPEG_6.2
00017908 T jinit_color_deconverter@@LIBJPEG_6.2
0000d110 T jinit_compress_master@@LIBJPEG_6.2
000116bc T jinit_c_prep_controller@@LIBJPEG_6.2
00015880 T jinit_d_coef_controller@@LIBJPEG_6.2
0001ab80 T jinit_d_main_controller@@LIBJPEG_6.2
000121dc T jinit_downsampler@@LIBJPEG_6.2
000217cc T jinit_d_post_controller@@LIBJPEG_6.2
00005a10 T jinit_forward_dct@@LIBJPEG_6.2
000199ec T jinit_huff_decoder@@LIBJPEG_6.2
0000cf48 T jinit_huff_encoder@@LIBJPEG_6.2
0001a4d4 T jinit_input_controller@@LIBJPEG_6.2
00018378 T jinit_inverse_dct@@LIBJPEG_6.2
0001cdf4 T jinit_marker_reader@@LIBJPEG_6.2
0000e07c T jinit_marker_writer@@LIBJPEG_6.2
0001da64 T jinit_master_decompress@@LIBJPEG_6.2
0002b7e0 T jinit_memory_mgr@@LIBJPEG_6.2
0002013c T jinit_merged_upsampler@@LIBJPEG_6.2
00021370 T jinit_phuff_decoder@@LIBJPEG_6.2
00011110 T jinit_phuff_encoder@@LIBJPEG_6.2
00021ed0 T jinit_upsampler@@LIBJPEG_6.2
0000ef60 T jpeg_abort@@LIBJPEG_6.2
00002b14 T jpeg_abort_compress@@LIBJPEG_6.2
00012d40 T jpeg_abort_decompress@@LIBJPEG_6.2
0000f0d0 T jpeg_add_quant_table@@LIBJPEG_6.2
0000eff4 T jpeg_alloc_huff_table@@LIBJPEG_6.2
0000efd0 T jpeg_alloc_quant_table@@LIBJPEG_6.2
00034bcc R jpeg_aritab@@LIBJPEG_6.2
0001d358 T jpeg_calc_output_dimensions@@LIBJPEG_6.2
00012d44 T jpeg_consume_input@@LIBJPEG_6.2
000129a4 T jpeg_copy_critical_parameters@@LIBJPEG_6.2
00002a24 T jpeg_CreateCompress@@LIBJPEG_6.2
00012c24 T jpeg_CreateDecompress@@LIBJPEG_6.2
000133d4 T jpeg_crop_scanline@@LIBJPEG_6.2
0000f5ac T jpeg_default_colorspace@@LIBJPEG_6.2
0000efa4 T jpeg_destroy@@LIBJPEG_6.2
00002b10 T jpeg_destroy_compress@@LIBJPEG_6.2
00012d3c T jpeg_destroy_decompress@@LIBJPEG_6.2
00022750 T jpeg_fdct_float@@LIBJPEG_6.2
00022938 T jpeg_fdct_ifast@@LIBJPEG_6.2
00022bfc T jpeg_fdct_islow@@LIBJPEG_6.2
000189fc T jpeg_fill_bit_buffer@@LIBJPEG_6.2
00002b5c T jpeg_finish_compress@@LIBJPEG_6.2
000130d8 T jpeg_finish_decompress@@LIBJPEG_6.2
00013fd8 T jpeg_finish_output@@LIBJPEG_6.2
0002b9f0 T jpeg_free_large@@LIBJPEG_6.2
0002b9e0 T jpeg_free_small@@LIBJPEG_6.2
0000c9f0 T jpeg_gen_optimal_table@@LIBJPEG_6.2
0002b9e8 T jpeg_get_large@@LIBJPEG_6.2
0002b9d8 T jpeg_get_small@@LIBJPEG_6.2
0001309c T jpeg_has_multiple_scans@@LIBJPEG_6.2
00018b3c T jpeg_huff_decode@@LIBJPEG_6.2
00024c0c T jpeg_idct_10x10@@LIBJPEG_6.2
000250f4 T jpeg_idct_11x11@@LIBJPEG_6.2
00025754 T jpeg_idct_12x12@@LIBJPEG_6.2
00025cdc T jpeg_idct_13x13@@LIBJPEG_6.2
00026474 T jpeg_idct_14x14@@LIBJPEG_6.2
00026b20 T jpeg_idct_15x15@@LIBJPEG_6.2
00027280 T jpeg_idct_16x16@@LIBJPEG_6.2
0002806c T jpeg_idct_1x1@@LIBJPEG_6.2
00027e5c T jpeg_idct_2x2@@LIBJPEG_6.2
00024610 T jpeg_idct_3x3@@LIBJPEG_6.2
00027b08 T jpeg_idct_4x4@@LIBJPEG_6.2
000243b8 T jpeg_idct_5x5@@LIBJPEG_6.2
0002413c T jpeg_idct_6x6@@LIBJPEG_6.2
00023d3c T jpeg_idct_7x7@@LIBJPEG_6.2
00024798 T jpeg_idct_9x9@@LIBJPEG_6.2
00022f20 T jpeg_idct_float@@LIBJPEG_6.2
0002330c T jpeg_idct_ifast@@LIBJPEG_6.2
0002380c T jpeg_idct_islow@@LIBJPEG_6.2
00013060 T jpeg_input_complete@@LIBJPEG_6.2
0000c514 T jpeg_make_c_derived_tbl@@LIBJPEG_6.2
000184c0 T jpeg_make_d_derived_tbl@@LIBJPEG_6.2
0002b9f8 T jpeg_mem_available@@LIBJPEG_6.2
000142d8 T jpeg_mem_dest@@LIBJPEGTURBO_6.2
0002ba3c T jpeg_mem_init@@LIBJPEG_6.2
00014674 T jpeg_mem_src@@LIBJPEGTURBO_6.2
0002ba44 T jpeg_mem_term@@LIBJPEG_6.2
00034a6c R jpeg_natural_order@@LIBJPEG_6.2
0001d9d4 T jpeg_new_colormap@@LIBJPEG_6.2
0002ba28 T jpeg_open_backing_store@@LIBJPEG_6.2
0000f224 T jpeg_quality_scaling@@LIBJPEG_6.2
000222a4 T jpeg_read_coefficients@@LIBJPEG_6.2
00012fe0 T jpeg_read_header@@LIBJPEG_6.2
00019bf8 T jpeg_read_icc_profile@@LIBJPEG_6.2
00013e84 T jpeg_read_raw_data@@LIBJPEG_6.2
000135fc T jpeg_read_scanlines@@LIBJPEG_6.2
0001ccb0 T jpeg_resync_to_restart@@LIBJPEG_6.2
0001ceb8 T jpeg_save_markers@@LIBJPEG_6.2
0000f29c T jpeg_set_colorspace@@LIBJPEG_6.2
0000f638 T jpeg_set_defaults@@LIBJPEG_6.2
0000f1d0 T jpeg_set_linear_quality@@LIBJPEG_6.2
0001cfb8 T jpeg_set_marker_processor@@LIBJPEG_6.2
0000f26c T jpeg_set_quality@@LIBJPEG_6.2
0000f828 T jpeg_simple_progression@@LIBJPEG_6.2
000138a4 T jpeg_skip_scanlines@@LIBJPEG_6.2
00002e30 T jpeg_start_compress@@LIBJPEG_6.2
000132c0 T jpeg_start_decompress@@LIBJPEG_6.2
00013f6c T jpeg_start_output@@LIBJPEG_6.2
000226bc T jpeg_std_error@@LIBJPEG_6.2
0001423c T jpeg_stdio_dest@@LIBJPEG_6.2
0001457c T jpeg_stdio_src@@LIBJPEG_6.2
00045a6c D jpeg_std_message_table@@LIBJPEG_6.2
00002b18 T jpeg_suppress_tables@@LIBJPEG_6.2
00012844 T jpeg_write_coefficients@@LIBJPEG_6.2
0000cf90 T jpeg_write_icc_profile@@LIBJPEG_6.2
00002cac T jpeg_write_marker@@LIBJPEG_6.2
00002dac T jpeg_write_m_byte@@LIBJPEG_6.2
00002d48 T jpeg_write_m_header@@LIBJPEG_6.2
00003014 T jpeg_write_raw_data@@LIBJPEG_6.2
00002ed0 T jpeg_write_scanlines@@LIBJPEG_6.2
00002db8 T jpeg_write_tables@@LIBJPEG_6.2
0002a688 T jround_up@@LIBJPEG_6.2
0002a6f0 T jzero_far@@LIBJPEG_6.2
00000000 A LIBJPEG_6.2
00000000 A LIBJPEGTURBO_6.2
         U malloc@GLIBC_2.4
         U memcpy@GLIBC_2.4
         U memset@GLIBC_2.4
         U raise@GLIBC_2.4
         U __sprintf_chk@GLIBC_2.4
         U __stack_chk_fail@GLIBC_2.4
         U __stack_chk_guard@GLIBC_2.4
         U stderr@GLIBC_2.4
         U strchr@GLIBC_2.4
         U strncmp@GLIBC_2.4
         U strstr@GLIBC_2.4
2play commented 2 years ago

@saper-2 sorry for the delay I had/ve this on my PlayBox but not tested on x64 setup. On Rockchip x64 i use kmsgrab as the libs for any other solution is based on bcm libs I now prefer later as its not bcm restricted