summaryrefslogtreecommitdiffstats
path: root/libmpdemux
Commit message (Collapse)AuthorAgeFilesLines
* Remove MEncoderUoti Urpala2010-11-027-4328/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Disable MEncoder compilation and remove files used by MEncoder only. There's no attempt to remove all references to MEncoder from the build system, documentation etc at this point. Removed files: (muxers, audio/video encoders, misc) mencoder.c cfg-mencoder.h parser-mecmd.[ch] xvid_vbr.[ch] libmpdemux/muxer* libmpcodecs/ae* libmpcodecs/ve* libmpcodecs/native/rtjpegn.[ch] libmpcodecs/native/mmx.h // was used by rtjpegn only Rationale: MEncoder is still useful for some people, but there's not much potential for further development; in the long run almost all use cases can be handled better by solutions based on something else (for example using FFmpeg or encoding MPlayer output). FFmpeg is already getting video filtering support which should work for some common MEncoder uses. Keeping MEncoder working takes extra work that is away from player development. While that amount of work is not huge (mostly MEncoder can be just ignored), it's not completely insignificant either. MEncoder is still maintained to some degree in the svn tree, so if necessary it's possible to use it from there for now. This tree has never had major improvements for the MEncoder side, so using svn MEncoder instead should be no major loss.
* demux_nemesi: Remove a pointless ifreimar2010-11-021-15/+6
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32208 b3059339-0415-0410-9bf9-f77b7e298cf2 Reindent. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32209 b3059339-0415-0410-9bf9-f77b7e298cf2
* cleanup: malloc+memset->calloc, sizeof(TYPE)->sizeof(*ptr)reimar2010-11-0230-126/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace malloc+memset by calloc git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32181 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32182 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32183 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace some sizeof(type) by sizeof(*pointer) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32184 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32186 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32187 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32188 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizoef(type) by sizeof(*ptrvar). Besides being consistent with FFmpeg style, this reduces the size of a patch to rename these types to not conflict with the windows.h definitions. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32189 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32191 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32192 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizeof(type) by sizeof(*ptrvar) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32193 b3059339-0415-0410-9bf9-f77b7e298cf2 Remove a useless cast. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32194 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizeof(type) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32195 b3059339-0415-0410-9bf9-f77b7e298cf2 Remove a useless cast. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32196 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace several sizeof(WAVEFORMATEX) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32197 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace one more instance of sizeof(WAVEFORMATEX); fix compilation. patch by Clément Bœsch, ubitux gmail com git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32199 b3059339-0415-0410-9bf9-f77b7e298cf2 Avoid some pointless uses of sizeof() and one related cast. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32200 b3059339-0415-0410-9bf9-f77b7e298cf2 Merge one malloc() + memset() invocation into calloc(). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32202 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32203 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizeof(WAVEFORMATEX) occurrences. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32205 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace malloc+memset by calloc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32206 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace sizeof(BITMAPINFOHEADER) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32207 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_rtp: Remove pointless typedef keyworddiego2010-11-021-1/+1
| | | | | | | Remove "typedef" from struct RTPState declaration; fixes: libmpdemux/demux_rtp.cpp:90: warning: 'typedef' was ignored in this declaration git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32170 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add central init_avcodec() to avoid duplicated libavcodec init codediego2010-11-021-6/+4
| | | | | | | | | | | | | | | | Patch by Vlad Seryakov, vseryakov gmail com git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32043 b3059339-0415-0410-9bf9-f77b7e298cf2 Refactor more instances of avcodec_initialized handling into init_avcodec(). This is a leftover from the previous commit. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32044 b3059339-0415-0410-9bf9-f77b7e298cf2 Add missing #include for vd_ffmpeg.h; fixes the warning: libmpcodecs/vf_zrmjpeg.c:472: warning: implicit declaration of function 'init_avcodec' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32176 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_lavf: Always use convergence_duration for subtitlesreimar2010-11-021-1/+4
| | | | | | | Otherwise subtitles will stay on screen forever for ASS subtitles in mkv if no ASS renderer is used. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32032 b3059339-0415-0410-9bf9-f77b7e298cf2
* demuxer.c: reset subtitle EOF on seekingreimar2010-11-021-0/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32031 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_lavf: print subtitle type in more casesreimar2010-11-023-1/+21
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32006 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_ogg.c: remove unused variablediego2010-11-021-2/+1
| | | | | | | Avoid redundant use of variable 'size' in demux_ogg_read_packet(), fixes: libmpdemux/demux_ogg.c:266: warning: unused variable 'size' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31946 b3059339-0415-0410-9bf9-f77b7e298cf2
* printf format fixes ("%d" -> "%zd")diego2010-11-022-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | Add 'z' length modifier to %d printf format specifier for size_t argument. stream/http.c:675: warning: format '%d' expects type 'int', but argument 4 has type 'size_t' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31933 b3059339-0415-0410-9bf9-f77b7e298cf2 Add 'z' length modifier to %d printf format specifiers for size_t arguments. libmpdemux/demux_avi.c:553: warning: format '%u' expects type 'unsigned int', but argument 5 has type 'size_t' libmpdemux/demux_avi.c:553: warning: format '%u' expects type 'unsigned int', but argument 7 has type 'size_t' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31935 b3059339-0415-0410-9bf9-f77b7e298cf2 Add 'z' length modifier to %d printf format specifiers for size_t arguments. libmpdemux/demux_lmlm4.c:75: warning: format '%d' expects type 'int', but argument 5 has type 'ssize_t' libmpdemux/demux_lmlm4.c:163: warning: format '%d' expects type 'int', but argument 6 has type 'ssize_t' libmpdemux/demux_lmlm4.c:163: warning: format '%d' expects type 'int', but argument 7 has type 'ssize_t' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31937 b3059339-0415-0410-9bf9-f77b7e298cf2 Add 'z' length modifier to %d printf format specifier for size_t argument. stream/asf_streaming.c:676: warning: format '%d' expects type 'int', but argument 5 has type 'size_t' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31938 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux: Move mp_a52_framesize from demux_ts.c to parse_es.cdiego2010-11-024-45/+46
| | | | | | | The function is used in the MPEG muxer as well and not specific to MPEG-TS. Jointly developed by Nico Sabbi and myself. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31929 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_ts.c: cleanupreimar2010-11-021-11/+7
| | | | | | | | | | | | | | Remove some useless casts. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31921 b3059339-0415-0410-9bf9-f77b7e298cf2 Remove an unused variable. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31922 b3059339-0415-0410-9bf9-f77b7e298cf2 Simplify ts_sync. Might also make it easier to optimize a bit. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31923 b3059339-0415-0410-9bf9-f77b7e298cf2
* spelling fixessiretart2010-11-022-2/+2
| | | | | | | | | | Found by the Debian QA tool 'lintian' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31913 b3059339-0415-0410-9bf9-f77b7e298cf2 reintroduce typo in genres.h that was fixed fixed r31913 to match the id3v2 spec git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31920 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_ts.c: avoid compiler warning by adding initializationdiego2010-11-021-1/+1
| | | | | | | Initialize frame_length variable to zero to avoid the warning: libmpdemux/demux_ts.c:669: warning: 'frame_length' may be used uninitialized in this function git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31874 b3059339-0415-0410-9bf9-f77b7e298cf2
* configure: Rename "network" variable and option to "networking"diego2010-11-021-1/+1
| | | | | | This avoids conflicts with the FFmpeg variable of the same name. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31749 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_ts: Improve subtitle supportreimar2010-11-021-49/+37
| | | | | | | Make it use the infrastructure for subtitle handling so e.g. switching subtitles at runtime works and add support for PGS subtitles. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31724 b3059339-0415-0410-9bf9-f77b7e298cf2
* demuxer.c: add new_sh_sub_sid_langUoti Urpala2010-11-022-0/+13
| | | | | | Allocates a new sh_sub and specifies language at the same time. I don't think this is a particularly good API but add it for easier compatibility with some svn changes.
* subs: Add support for DVB and XSUB subtitles, not yet working properlyreimar2010-11-021-0/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31694 b3059339-0415-0410-9bf9-f77b7e298cf2
* asfheader, demux_audio: Remove some pointless be2me/le2mereimar2010-11-022-10/+7
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31685 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_pva.c: Remove completely nonsensical le2me usagesreimar2010-11-021-3/+3
| | | | | | The only effect these had was breaking playback on big-endian. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31682 b3059339-0415-0410-9bf9-f77b7e298cf2
* aviheader.c: Remove obfuscating use of le2me_32.reimar2010-11-021-6/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31681 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_ts: add memory access checksreimar2010-11-021-5/+5
| | | | | | | Add packet->len checks to avoid out-of-bounds reads and negative es->size values. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31671 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_ts: fix crash on broken packetsreimar2010-11-021-0/+4
| | | | | | | Check packet size before memmove to avoid crashes e.g. if we recognized the wrong type and subtracted more header bytes than there are overall bytes. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31669 b3059339-0415-0410-9bf9-f77b7e298cf2
* subs: Add support for PGS subtitle decoding via libavcodecreimar2010-11-021-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31665 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_lavf: stricter check for convergence_duration validityaurel2010-11-021-1/+1
| | | | | | Avoid using meaningless values git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31642 b3059339-0415-0410-9bf9-f77b7e298cf2
* asfguid.h: Use AV_RL32 also in x86reimar2010-11-021-4/+0
| | | | | | It is well enough optimized nowadays. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31610 b3059339-0415-0410-9bf9-f77b7e298cf2
* cleanup: Add const qualifiers for struct ad_functions pointersreimar2010-11-021-1/+1
| | | | | | | The ad_functions structs are in rodata, mark some pointers to them const. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31606 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_lavf: Avoid a crash if stream->url is not setreimar2010-11-021-0/+4
| | | | | | Print a warning since this is not supposed to happen. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31587 b3059339-0415-0410-9bf9-f77b7e298cf2
* Factorize MPlayer/MEncoder version string handling.diego2010-11-021-3/+2
| | | | | | | The string now resides in a central object file instead of being duplicated in every file that requires a version string. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31577 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_ts: change IS_ macros to functionsreimar2010-11-021-3/+40
| | | | | | | Replace ever-growing-to-uglyness IS_* macros to by functions and switch(). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31540 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_real: use MKTAG definition from libavutildiego2010-11-021-3/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31531 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_ts: detect LATM AAC as a separate typereimar2010-11-021-2/+7
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31520 b3059339-0415-0410-9bf9-f77b7e298cf2 Place AUDIO_AAC_LATM definition next to AUDIO_AAC. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31521 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_y4m: increase error message verbosity from MSGL_V to MSGL_ERRreimar2010-11-021-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31464 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_ty: Cleanup some code, possibly fix vstream support (untested)reimar2010-11-021-7/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31423 b3059339-0415-0410-9bf9-f77b7e298cf2
* cleanup: #include loader/wine/winbase.h instead of local declarationsdiego2010-11-021-4/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31414 b3059339-0415-0410-9bf9-f77b7e298cf2
* rtsp: Support RTSP/RTP over HTTP via LIVE555cehoyos2010-11-022-1/+8
| | | | | | | | | | Patch by Malte Särner, malte D sarner A multiq se git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31347 b3059339-0415-0410-9bf9-f77b7e298cf2 Fix compilation with nemesi and live555. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31348 b3059339-0415-0410-9bf9-f77b7e298cf2
* demuxer.c: Make ds_get_next_pts work for the first packet of a streamreimar2010-10-271-1/+6
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31338 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_real: Don't try to read index if stream is not seekablereimar2010-10-271-1/+2
| | | | | | | Fixes playback of piped real files (except multirate where this seems not possible). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31335 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_mkv: support V_MJPEG video tagUoti Urpala2010-10-272-0/+2
|
* demux_mkv: accept files with no doctype in EBML headerUoti Urpala2010-10-211-1/+4
| | | | | | Assume files which start with an EBML header but have no DocType element in that header have type "matroska", and attempt to play them. Reportedly some mkvmerge versions create such files.
* Merge svn changes r31318 to r31328Uoti Urpala2010-06-052-6/+11
|\ | | | | | | | | r31328 is a somewhat questionable (changing the option at that point isn't quite safe), but it was a failure case already...
| * Add partial support for dirac to TS demuxer.reimar2010-06-051-1/+9
| | | | | | | | | | | | | | E.g. no header parsing is implemented so -fps must be specified manually. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31327 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Also print current stream position in mp_read debug output.reimar2010-06-051-1/+2
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31326 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Remove explicit eof check for mp_read code, stream code handles this casereimar2010-06-051-2/+0
| | | | | | | | | | | | | | better, e.g. properly supporting growing files. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31325 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Di not do a stream_reset on seeking backwards, the seek itself shouldreimar2010-06-051-2/+0
| | | | | | | | | | | | | | do whatever is best/necessary, this method will just drop cached data. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31324 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Default to -correct-pts off if -fps was given, since -fps has no effectreimar2010-06-041-3/+2
| | | | | | | | | | | | | | (and doesn't really make sense) with correct-pts mode. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31316 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Try always enabling correct pts again for lavf demuxer, since the knowreimar2010-06-031-4/+0
| | | | | | | | | | | | | | | | issue with PAFF seems solved to me, and disabled correct-pts causes flickering with -ass (which of course should be fixed as well though). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31313 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Switch mkv demuxing to lavf by default.aurel2010-05-311-0/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31294 b3059339-0415-0410-9bf9-f77b7e298cf2
* | demux_mkv: enable automatic index generation by defaultUoti Urpala2010-06-021-1/+1
| | | | | | | | | | | | | | | | | | Change demux_mkv to behave by default as it did with -idx before. The index generation code in demux_mkv linearly scans the file up to the seek timestamp (it doesn't read the whole file up front like some other demuxers do). Doing that is probably a better default for files with no index than rejecting the seek request and asking user to specify -idx.
* | Merge svn changes up to r31291Uoti Urpala2010-06-022-1/+2
|\|
| * Move TS_MAX_PROBE_SIZE #define to demux_ts.h instead of duplicating it.diego2010-05-302-1/+2
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31291 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Cast void* pointer to appropriate type before using it in an addition; fixesdiego2010-05-291-1/+1
| | | | | | | | | | | | | | libmpdemux/demux_mkv.c:1873: warning: pointer of type 'void *' used in arithmetic git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31276 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Drop pointless _t suffix from 'struct lavf_priv'.diego2010-05-281-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31247 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Drop pointless _s suffix from 'struct af_stream'.diego2010-05-271-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31238 b3059339-0415-0410-9bf9-f77b7e298cf2
| * cosmetics: Reformat in K&R coding style.diego2010-05-272-2568/+2379
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31234 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Remove two pointless void* casts.diego2010-05-271-3/+2
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31233 b3059339-0415-0410-9bf9-f77b7e298cf2
| *