Author Topic: FFplay media player  (Read 33056 times)

radon86 (OP)

  • Posts: 29
FFplay media player
« on: December 23, 2013, 05:35:18 pm »
FFplay is a very simple and portable media player using the FFmpeg and SDL.

This is build of the FFmpeg 2.1 release, which does't include hardware decoding support. FFplay can play DVDrip video very well, but high resolution or bitrate video slows.
Xvid;avi;~1000 kbps;720x576 - "DVDrip" and H264;mp4;~800 kbps;480?272 - "Video for PSP" plays well.



        Download: ffplay-gcw0.opk
        Source:      FFmpeg-2.1-GCW0

    Controls:
        - Play/Pause: "Y" button
        - Seek backward/forward 10 seconds: D-pad left/right
        - Seek backward/forward 1 minute: D-pad down/up
        - Seek to percentage in file corresponding to fraction of width: Mouse click
        - Cycle audio channel: "Left shoulder"
        - Cycle video channel: "A" button
        - Cycle subtitles channel: "Right shoulder"
        - Show audio waves: "X" button
        - Exit: "Select" button

If you press the "Select" button during playback of multimedia file, the next time playback will start from the last position.
Last position (auto bookmark) stored in the HOME directory: /usr/local/home/.config/ffplay/file_settings/"filename".pos

Use the "FFplay-sub" link to play video with subtitles:
    - First, tries to load "filename.ass" subtitles.
    - Second, tries to load "filename.srt" subtitles.
    - Third, tries to load subtitles from container.

Fontconfig file stored in the HOME directory: /usr/local/home/.fonts.conf
You may place your fonts into "/usr/local/share/fonts" directory.

FFmpeg supports a lot of audio/video codecs and formats, but OPK includes MIME-types only for Matroska, MP4, AVI, OGG, FLAC, MPEG-1, MPEG-2, Flash video (VP6), WebM video (VP8), 3gp video (3GPP), Apple Quicktime (.mov) and RealMedia (.ra, .ram, .rv, .rm, .rmvb) media files now.
Code: [Select]
MimeType=video/avi;video/mp4;audio/mp4;video/ogg;audio/ogg;video/x-matroska;audio/x-matroska;audio/x-flac;audio/mpeg;video/mpeg;video/x-flv;video/x-ms-asf;video/quicktime;video/3gpp;video/webm;audio/vnd.rn-realaudio;audio/x-pn-realaudio;audio/x-pn-realaudio-plugin;video/vnd.rn-realvideo;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;
If you don't see media files in the file selector, please write needed file extention in comment.

Configure options:
Code: [Select]
./configure --disable-debug --disable-ffmpeg --disable-ffserver --enable-cross-compile --arch=mipsel --target-os=linux --cross-prefix=mipsel-linux- --enable-shared --disable-doc --disable-mipsdspr2 --disable-mipsdspr1 --enable-gpl --enable-libx264 --enable-libass --prefix=/TMP-INSTALL-DIR
Updated 2013-12-23: added MIME-types form Nebuleon's post
Updated 2014-01-04: updated to the new version (added support for saving the last position, subtitles, internal audio tracks)
Updated 2014-06-06: added MIME-types for RealMedia
Updated 2014-06-17: bumped to ffmpeg 2.1.4; used c code instead bash script for bookmarks; fixed video playback with subtitles if the filename contains an apostrophe.
Updated 2019-02-08: updated links
« Last Edit: February 08, 2019, 11:02:21 am by radon86 »

Nebuleon

  • Guest
Re: FFplay media player
« Reply #1 on: December 23, 2013, 07:18:00 pm »
The file selector shows very few media file types.

Here, a repack with more file types: https://dl.dropboxusercontent.com/u/106475413/gcw-zero/ffplay-repack.opk

Code: [Select]
MimeType=video/avi;video/mp4;audio/mp4;video/ogg;audio/ogg;video/x-matroska;audio/x-matroska;audio/x-flac;audio/mpeg;-->
Code: [Select]
MimeType=video/avi;video/mp4;audio/mp4;video/ogg;audio/ogg;video/x-matroska;audio/x-matroska;audio/x-flac;audio/mpeg;video/mpeg;video/x-flv;video/x-ms-asf;video/quicktime;video/3gpp;video/webm;
This makes the file selector show MPEG-1, MPEG-2, Flash video (VP6), WebM video (VP8), 3gp video (3GPP) and Apple Quicktime (.mov). Windows Media Video should be shown, but isn't.

radon86 (OP)

  • Posts: 29
Re: FFplay media player
« Reply #2 on: December 23, 2013, 07:47:36 pm »
Code: [Select]
MimeType=video/avi;video/mp4;audio/mp4;video/ogg;audio/ogg;video/x-matroska;audio/x-matroska;audio/x-flac;audio/mpeg;video/mpeg;video/x-flv;video/x-ms-asf;video/quicktime;video/3gpp;video/webm;
This makes the file selector show MPEG-1, MPEG-2, Flash video (VP6), WebM video (VP8), 3gp video (3GPP) and Apple Quicktime (.mov). Windows Media Video should be shown, but isn't.

Thank you, Nebuleon! I updated OPK.

Nebuleon

  • Guest
Re: FFplay media player
« Reply #3 on: December 23, 2013, 08:00:26 pm »
If anyone else knows of a format that libavcodec plays but the file selector doesn't show, report in this thread with the result of running the following on your GCW Zero:
Code: [Select]
file --mime-type YOURFILE

radon86 (OP)

  • Posts: 29
Re: FFplay media player
« Reply #4 on: December 23, 2013, 08:22:52 pm »
For the current build libavcodec should support:
Code: [Select]
./ffplay.dge -formats
...
File formats:
 D. = Demuxing supported
 .E = Muxing supported
 --
  E 3g2             3GP2 (3GPP2 file format)
  E 3gp             3GP (3GPP file format)
 D  4xm             4X Technologies
  E a64             a64 - video for Commodore 64
 D  aac             raw ADTS AAC (Advanced Audio Coding)
 DE ac3             raw AC-3
 D  act             ACT Voice file format
 D  adf             Artworx Data Format
 D  adp             ADP
  E adts            ADTS AAC (Advanced Audio Coding)
 DE adx             CRI ADX
 D  aea             MD STUDIO audio
 D  afc             AFC
 DE aiff            Audio IFF
 DE alaw            PCM A-law
 DE alsa            ALSA audio output
 DE amr             3GPP AMR
 D  anm             Deluxe Paint Animation
 D  apc             CRYO APC
 D  ape             Monkey's Audio
 D  aqtitle         AQTitle subtitles
 DE asf             ASF (Advanced / Active Streaming Format)
  E asf_stream      ASF (Advanced / Active Streaming Format)
 DE ass             SSA (SubStation Alpha) subtitle
 DE ast             AST (Audio Stream)
 DE au              Sun AU
 DE avi             AVI (Audio Video Interleaved)
  E avm2            SWF (ShockWave Flash) (AVM2)
 D  avr             AVR (Audio Visual Research)
 D  avs             AVS
 D  bethsoftvid     Bethesda Softworks VID
 D  bfi             Brute Force & Ignorance
 D  bin             Binary text
 D  bink            Bink
 DE bit             G.729 BIT file format
 D  bmv             Discworld II BMV
 D  boa             Black Ops Audio
 D  brstm           BRSTM (Binary Revolution Stream)
 D  c93             Interplay C93
 DE caf             Apple CAF (Core Audio Format)
 DE cavsvideo       raw Chinese AVS (Audio Video Standard) video
 D  cdg             CD Graphics
 D  cdxl            Commodore CDXL video
 D  concat          Virtual concatenation script
  E crc             CRC testing
 DE data            raw data
 DE daud            D-Cinema audio
 D  dfa             Chronomaster DFA
 DE dirac           raw Dirac
 DE dnxhd           raw DNxHD (SMPTE VC-3)
 D  dsicin          Delphine Software International CIN
 DE dts             raw DTS
 D  dtshd           raw DTS-HD
 DE dv              DV (Digital Video)
 D  dv1394          DV1394 A/V grab
  E dvd             MPEG-2 PS (DVD VOB)
 D  dxa             DXA
 D  ea              Electronic Arts Multimedia
 D  ea_cdata        Electronic Arts cdata
 DE eac3            raw E-AC-3
 D  epaf            Ensoniq Paris Audio File
 DE f32be           PCM 32-bit floating-point big-endian
 DE f32le           PCM 32-bit floating-point little-endian
  E f4v             F4V Adobe Flash Video
 DE f64be           PCM 64-bit floating-point big-endian
 DE f64le           PCM 64-bit floating-point little-endian
 DE fbdev           Linux framebuffer
 DE ffm             FFM (FFserver live feed)
 DE ffmetadata      FFmpeg metadata in text
 D  film_cpk        Sega FILM / CPK
 DE filmstrip       Adobe Filmstrip
 DE flac            raw FLAC
 D  flic            FLI/FLC/FLX animation
 DE flv             FLV (Flash Video)
  E framecrc        framecrc testing
  E framemd5        Per-frame MD5 testing
 D  frm             Megalux Frame
 DE g722            raw G.722
 DE g723_1          raw G.723.1
 D  g729            G.729 raw format demuxer
 DE gif             GIF Animation
 D  gsm             raw GSM
 DE gxf             GXF (General eXchange Format)
 DE h261            raw H.261
 DE h263            raw H.263
 DE h264            raw H.264 video
 D  hevc            raw HEVC video
  E hls             Apple HTTP Live Streaming
 D  hls,applehttp   Apple HTTP Live Streaming
 DE ico             Microsoft Windows ICO
 D  idcin           id Cinematic
 D  idf             iCE Draw File
 D  iff             IFF (Interchange File Format)
 DE ilbc            iLBC storage
 DE image2          image2 sequence
 DE image2pipe      piped image2 sequence
 D  ingenient       raw Ingenient MJPEG
 D  ipmovie         Interplay MVE
  E ipod            iPod H.264 MP4 (MPEG-4 Part 14)
 DE ircam           Berkeley/IRCAM/CARL Sound Format
  E ismv            ISMV/ISMA (Smooth Streaming)
 D  iss             Funcom ISS
 D  iv8             IndigoVision 8000 video
 DE ivf             On2 IVF
 DE jacosub         JACOsub subtitle format
 D  jv              Bitmap Brothers JV
 DE latm            LOAS/LATM
 D  lavfi           Libavfilter virtual input device
 D  lmlm4           raw lmlm4
 D  loas            LOAS AudioSyncStream
 D  lvf             LVF
 D  lxf             VR native stream (LXF)
 DE m4v             raw MPEG-4 video
  E matroska        Matroska
 D  matroska,webm   Matroska / WebM
  E md5             MD5 testing
 D  mgsts           Metal Gear Solid: The Twin Snakes
 DE microdvd        MicroDVD subtitle format
 DE mjpeg           raw MJPEG video
  E mkvtimestamp_v2 extract pts as timecode v2 format, as defined by mkvtoolnix
 DE mlp             raw MLP
 D  mm              American Laser Games MM
 DE mmf             Yamaha SMAF
  E mov             QuickTime / MOV
 D  mov,mp4,m4a,3gp,3g2,mj2 QuickTime / MOV
  E mp2             MP2 (MPEG audio layer 2)
 DE mp3             MP3 (MPEG audio layer 3)
  E mp4             MP4 (MPEG-4 Part 14)
 D  mpc             Musepack
 D  mpc8            Musepack SV8
 DE mpeg            MPEG-1 Systems / MPEG program stream
  E mpeg1video      raw MPEG-1 video
  E mpeg2video      raw MPEG-2 video
 DE mpegts          MPEG-TS (MPEG-2 Transport Stream)
 D  mpegtsraw       raw MPEG-TS (MPEG-2 Transport Stream)
 D  mpegvideo       raw MPEG video
  E mpjpeg          MIME multipart JPEG
 D  mpl2            MPL2 subtitles
 D  mpsub           MPlayer subtitles
 D  msnwctcp        MSN TCP Webcam stream
 D  mtv             MTV
 DE mulaw           PCM mu-law
 D  mv              Silicon Graphics Movie
 D  mvi             Motion Pixels MVI
 DE mxf             MXF (Material eXchange Format)
  E mxf_d10         MXF (Material eXchange Format) D-10 Mapping
 D  mxg             MxPEG clip
 D  nc              NC camera feed
 D  nistsphere      NIST SPeech HEader REsources
 D  nsv             Nullsoft Streaming Video
  E null            raw null video
 DE nut             NUT
 D  nuv             NuppelVideo
 DE ogg             Ogg
 DE oma             Sony OpenMG audio
 DE oss             OSS (Open Sound System) playback
 D  paf             Amazing Studio Packed Animation File
 D  pjs             PJS (Phoenix Japanimation Society) subtitles
 D  pmp             Playstation Portable PMP
  E psp             PSP MP4 (MPEG-4 Part 14)
 D  psxstr          Sony Playstation STR
 D  pva             TechnoTrend PVA
 D  pvf             PVF (Portable Voice Format)
 D  qcp             QCP
 D  r3d             REDCODE R3D
 DE rawvideo        raw video
 D  realtext        RealText subtitle format
 D  redspark        RedSpark
 D  rl2             RL2
 DE rm              RealMedia
 DE roq             raw id RoQ
 D  rpl             RPL / ARMovie
 D  rsd             GameCube RSD
 DE rso             Lego Mindstorms RSO
 DE rtp             RTP output
 DE rtsp            RTSP output
 DE s16be           PCM signed 16-bit big-endian
 DE s16le           PCM signed 16-bit little-endian
 DE s24be           PCM signed 24-bit big-endian
 DE s24le           PCM signed 24-bit little-endian
 DE s32be           PCM signed 32-bit big-endian
 DE s32le           PCM signed 32-bit little-endian
 DE s8              PCM signed 8-bit
 D  sami            SAMI subtitle format
 DE sap             SAP output
 D  sbg             SBaGen binaural beats script
  E sdl             SDL output device
 D  sdp             SDP
  E segment         segment
 D  shn             raw Shorten
 D  siff            Beam Software SIFF
 DE smjpeg          Loki SDL MJPEG
 D  smk             Smacker
  E smoothstreaming Smooth Streaming Muxer
 D  smush           LucasArts Smush
 D  sol             Sierra SOL
 DE sox             SoX native
 DE spdif           IEC 61937 (used on S/PDIF - IEC958)
 DE srt             SubRip subtitle
  E stream_segment,ssegment streaming segment muxer
 D  subviewer       SubViewer subtitle format
 D  subviewer1      SubViewer v1 subtitle format
  E svcd            MPEG-2 PS (SVCD)
 DE swf             SWF (ShockWave Flash)
 D  tak             raw TAK
 D  tedcaptions     TED Talks captions
  E tee             Multiple muxer tee
 D  thp             THP
 D  tiertexseq      Tiertex Limited SEQ
 D  tmv             8088flex TMV
 DE truehd          raw TrueHD
 D  tta             TTA (True Audio)
 D  tty             Tele-typewriter
 D  txd             Renderware TeXture Dictionary
 DE u16be           PCM unsigned 16-bit big-endian
 DE u16le           PCM unsigned 16-bit little-endian
 DE u24be           PCM unsigned 24-bit big-endian
 DE u24le           PCM unsigned 24-bit little-endian
 DE u32be           PCM unsigned 32-bit big-endian
 DE u32le           PCM unsigned 32-bit little-endian
 DE u8              PCM unsigned 8-bit
  E v4l2            Video4Linux2 output device
 DE vc1             raw VC-1 video
 DE vc1test         VC-1 test bitstream
  E vcd             MPEG-1 Systems / MPEG program stream (VCD)
 D  video4linux2,v4l2 Video4Linux2 device grab
 D  vivo            Vivo
 D  vmd             Sierra VMD
  E vob             MPEG-2 PS (VOB)
 D  vobsub          VobSub subtitle format
 DE voc             Creative Voice
 D  vplayer         VPlayer subtitles
 D  vqf             Nippon Telegraph and Telephone Corporation (NTT) TwinVQ
 DE w64             Sony Wave64
 DE wav             WAV / WAVE (Waveform Audio)
 D  wc3movie        Wing Commander III movie
  E webm            WebM
 DE webvtt          WebVTT subtitle
 D  wsaud           Westwood Studios audio
 D  wsvqa           Westwood Studios VQA
 DE wtv             Windows Television (WTV)
 DE wv              raw WavPack
 D  xa              Maxis XA
 D  xbin            eXtended BINary text (XBIN)
 D  xmv             Microsoft XMV
 D  xwma            Microsoft xWMA
 D  yop             Psygnosis YOP
 DE yuv4mpegpipe    YUV4MPEG pipe

If anyone else knows of a format that libavcodec plays but the file selector doesn't show, report in this thread with the result of running the following on your GCW Zero:
Code: [Select]
file --mime-type YOURFILE
That would be great.

Losk

  • Posts: 92
Re: FFplay media player
« Reply #5 on: December 30, 2013, 06:58:25 am »
This player and the amount of file types it supports is fantastic - thanks a lot!!  :) The media player was the reason why my good old Dingoo had still more use than the GCW Zero.

If I could make a wish it would be great to have some sort of bookmarking (auto boomark?) and a time index.

Kelleth

  • Posts: 13
Re: FFplay media player
« Reply #6 on: December 31, 2013, 12:59:13 pm »
The opk works fine with multiple files. But somehow some video's (mostly h264 mp4's) refuse to work even though the encoding is supported, constantly being stuck on the first frame. Converting to XVID-AVI doesn't seem to help either. Which is a bit sad because I wanted to bring Day of the Doctor with me today xD

That said excellent video player, here's to stream-lining it for final release!

Happy new year guys.

iames85

  • Posts: 65
Re: FFplay media player
« Reply #7 on: December 31, 2013, 01:25:00 pm »
This is really great! Thank you  :)

Kelleth

  • Posts: 13
Re: FFplay media player
« Reply #8 on: December 31, 2013, 01:44:10 pm »
After a few tries I got The Night and the Day of the Doctor working, thank you for this, Now I am off!

Scoobysnaxx

  • Posts: 128
Re: FFplay media player
« Reply #9 on: December 31, 2013, 03:11:54 pm »
Sweet Release. Many thanks! I can finally watch my TV  shows during my morning commute on the train again

(I have an older blackberry - my work pays for it so don't judge  ;D)

radon86 (OP)

  • Posts: 29
Re: FFplay media player
« Reply #10 on: January 04, 2014, 10:46:17 am »
This player and the amount of file types it supports is fantastic - thanks a lot!!  :)
Many thanks to the FFmpeg developers.
The opk works fine with multiple files. But somehow some video's (mostly h264 mp4's) refuse to work even though the encoding is supported, constantly being stuck on the first frame.
That's performance issue. You may try to press the pause/play. Then wait a few seconds while the audio and video will be synchronized.

Ziz

  • Posts: 285
    • http://ziz.gp2x.de
Re: FFplay media player
« Reply #11 on: January 04, 2014, 11:35:41 am »
I didn't test it yet, but nevertheless now:
Thanks! :D
I am a leaf on the wind - watch how I soar. Wash

radon86 (OP)

  • Posts: 29
Re: FFplay media player
« Reply #12 on: January 04, 2014, 12:16:21 pm »
UPDATE 2014-01-04

- Added auto bookmarks.
    If you press the "Select" button during playback of multimedia file, the next time playback will start from the last position.
- Mapped L-shoulder key for change audio tracks.
    Press "Left shoulder" button during playback to the cycle audio channel.
- Mapped X key to the cycle video output mode (video, audio waves, spectrogram).
- Added .ass, .srt, and internal subtitles support.
    Use the "FFplay-sub" link to play video with subtitles. Put filename.ass file into the same dir, where placed filename.avi file (for example) if you want to see subtitles.

- Switched to the libx264 decoder.
- Added libass with fontconfig support (for subtitles).

Check first post for more information.
« Last Edit: January 04, 2014, 12:43:24 pm by radon86 »

Ziz

  • Posts: 285
    • http://ziz.gp2x.de
Re: FFplay media player
« Reply #13 on: January 04, 2014, 03:11:27 pm »
Thanks for the update!

For easy updating I made a repository-script for this thread usable in OPKManager. ;)
http://boards.dingoonity.org/gcw-releases/opkmanager-version-0-9/msg91808/#msg91808
I am a leaf on the wind - watch how I soar. Wash

Nebuleon

  • Guest
Re: FFplay media player
« Reply #14 on: January 04, 2014, 10:52:38 pm »
The opk works fine with multiple files. But somehow some video's (mostly h264 mp4's) refuse to work even though the encoding is supported, constantly being stuck on the first frame. Converting to XVID-AVI doesn't seem to help either. Which is a bit sad because I wanted to bring Day of the Doctor with me today xD

That said excellent video player, here's to stream-lining it for final release!

Happy new year guys.
H.264 is very taxing, and even AVI/XviD won't help if the resolution is absurd (like 480p or beyond). If you want some good performance, use MPEG-1, Flash video, MPEG-2, AVI/DivX or AVI/XviD at up to 480x360, or H.264 at up to 320x240 (and even then it may struggle a bit). the preceding was the result of testing in the first ffplay opk and may be better with libx264

I believe Ingenic's claim that the JZ4770 can play 720p at 30 FPS flawlessly relies on their own compiled MPlayer with XBurst SIMD code, and not anything general-purpose or not specifically optimised. And they keep the SIMD ISA confidential. Apart from this page, which documents the efforts of reverse-engineering the early SIMD instructions of the JZ4740, I can't find any documentation on what the JZ4770 can use for SIMD.
« Last Edit: January 04, 2014, 10:57:13 pm by Nebuleon »

pcercuei

  • Posts: 1676
    • My devblog
Re: FFplay media player
« Reply #15 on: January 04, 2014, 11:19:26 pm »
I believe Ingenic's claim that the JZ4770 can play 720p at 30 FPS flawlessly relies on their own compiled MPlayer with XBurst SIMD code, and not anything general-purpose or not specifically optimised. And they keep the SIMD ISA confidential. Apart from this page, which documents the efforts of reverse-engineering the early SIMD instructions of the JZ4740, I can't find any documentation on what the JZ4770 can use for SIMD.
We have full documentation about the MXU SIMD instructions. They have been added to binutils and GCC. The JZ4770 can play 1080p flawlessly at 30fps, because it can decode h264, mpeg4 and mpeg2 in hardware.

Nebuleon

  • Guest
Re: FFplay media player
« Reply #16 on: January 04, 2014, 11:23:37 pm »
We have full documentation about the MXU SIMD instructions. They have been added to binutils and GCC. The JZ4770 can play 1080p flawlessly at 30fps, because it can decode h264, mpeg4 and mpeg2 in hardware.
[1 quote nesting level removed] You do? Show me the docs so I can try using SIMD instructions from the JZ4770 set in inline assembly.

edit: But that's more than a little off-topic for this thread, so please either PM me or post in /GCW Zero/Development.
« Last Edit: January 04, 2014, 11:25:35 pm by Nebuleon »

Nebuleon

  • Guest
Re: FFplay media player
« Reply #17 on: January 04, 2014, 11:56:49 pm »
Testing with the newest version, I still see major slowdown with H.264 files of perhaps not-so-modest dimensions (708x364); the video stays stuck on the first frame for more than 20 seconds, then the video plays 3 times too slow with perfect audio, leading to a desynchronisation. I had similar performance with the first build.

I do like that the subtitles version can render streams of Advanced SubStation Alpha subtitles, but also regular .srt files. I suppose that's because it's based on libavcodec, and libavcodec rocks. :)

radon86 (OP)

  • Posts: 29
Re: FFplay media player
« Reply #18 on: January 06, 2014, 09:51:25 pm »
About performance:
XVID/DIVX (usually .avi): ~480p is a maximum. DVDrips (700?400, 720?576, ...) plays smoothly.
H264 codec: (usually .mp4): 360p is an absolutely maximum. "Video for PSP" presets (480?272) plays smoothly. libx264 bring very small performance.

About optimizations:
Current MIPS optimization mainly to described here. Without MIPS floating point and MIPS32R2 I got greater loss of performance. MIPS DSP ASE r1/r2 didn't work - I got "illegal instruction" error.

I do like that the subtitles version can render streams of Advanced SubStation Alpha subtitles, but also regular .srt files. I suppose that's because it's based on libavcodec, and libavcodec rocks. :)
It's used "Subtitles" video filter from libavfilter, you're right.

panshuai0

  • Posts: 83
    • My Hocoslamfy high score is 40. I Love My Gcw Zero
Re: FFplay media player
« Reply #19 on: June 06, 2014, 05:00:21 am »
 ;)Superb work! Running on my gcw perfect!
 ;DAsk authors to join (rm / rmvb) for support?
 :-[I'm looking forward to rmvb run gcwzero!
rm / rmvb high compression! Small! Good resolution!
Finally, please understand my English is not good! :D
My Hocoslamfy high score is 40. I Love My Gcw Zero

 

Post a new topic
Post a new topic