summaryrefslogtreecommitdiffstats
path: root/libmpdemux/stheader.h
Commit message (Collapse)AuthorAgeFilesLines
* video, audio: use lavc decoders without codecs.conf entriesUoti Urpala2012-07-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for using libavcodec decoders that do not have entries in codecs.conf. This is currently only used with demux_lavf, and the codec selection is based on codec_id returned by libavformat. Also modify codec-related terminal output somewhat to make it use information from libavcodec and avoid excessively long default output. The new any-lavc-codec support is implemented with codecs.conf entries that invoke vd_ffmpeg/ad_ffmpeg without directly specifying any libavcodec codec name. In this mode, the decoders now instead select the libavcodec codec based on codec_id previously set by demux_lavf (if any). These new "generic" codecs.conf entries specify "status buggy", so that they're tried after any specific entries with higher-priority status. Add new directive "anyinput" to codecs.conf syntax. This means the entry will always match regardless of fourcc. This is used for the above new codecs.conf entries (so the driver always gets to decide whether to accept the input, and will fail init() if it can't find a suitable codec in libavcodec). Remove parsing support for the obsolete codecs.conf directive "cpuflags". This directive has not had any effect and has not been used in default codecs.conf since many years ago. Shorten codec-related terminal output. When using libavcodec decoders, show the libavcodec long_name field rather than codecs.conf "info" field as the name of the codec. Stop showing the codecs.conf entry name and "vfm/afm" name by default, as these are rarely needed; they're now in verbose output only. Show "VIDEO:" line at VO initialization rather than at demuxer open. This didn't really belong in demuxer code; the new location may show more accurate values (known after decoder has been opened) and works right if video track is changed after initial demuxer open. The vd.c changes (primarily done for terminal output changes) remove round-to-even behavior from code setting dimensions based on aspect ratio. I hope nothing depended on this; at least the even values were not consistently guaranteed anyway, as the rounding code did not run if the video file did not specify a nonzero aspect value.
* audio/video: delete buggy "dynamic plugin" codeUoti Urpala2011-10-201-6/+0
| | | | | | | | | | | | Codec selection for audio and video decoding had a "dynamic plugin" feature that tried to load a shared library for any codec that had not been enabled at compilation (disabled by default, but could be enabled with --enable-dynamic-plugins configure switch; for unknown reasons some distro packages have enabled it). The implementation was buggy and could cause normal codec selection fallback to fail if the feature was enabled. I'm not aware of any real uses of such dynamic plugins and the feature seems questionable anyway (there are no ABI guarantees that would make it safe to use). Remove the buggy feature.
* OSD: when switching sub/audio tracks show title of new trackUoti Urpala2011-07-031-0/+1
| | | | | | If the played file has per-track titles for audio and subtitles show those on the OSD when switching tracks. This changes the OSD message from 'Audio: (2) eng' to 'Audio: (2) eng ("Director's commentary")'.
* cleanup: reindent stheader.hUoti Urpala2011-07-031-100/+102
| | | | Also improve some comments and change two fields from int to bool.
* audio: move ready-for-ao data buffer from decoder to AOUoti Urpala2011-07-021-5/+0
| | | | | | | | | | | | Move the buffer storing audio data ready to be fed to the audio output driver from the audio decoder object to the AO object. This will help encoding code deal with end of input, and may also be useful to improve other general gapless audio behavior (as AOs which do not accept chunks smaller than a certain size may keep them in the buffer while the decoder changes). Less data may be dropped now when changing audio filters or switching timeline parts.
* vd_ffmpeg: autoselect output colorspaces without codecs.confUoti Urpala2011-06-261-0/+1
| | | | | | | | | | | | | Selecting the colorspace to output from a decoder is done in the function mpcodecs_config_vo(). Add a new version of this function, mpcodecs_config_vo2(), that allows the decoder to specify a list of candidate colorspaces instead of always using a hardcoded list specified in the codecs.conf entry. If the codecs.conf entry has any "out" lines then those still take priority and the decoder-provided list (if any) is ignored. Make vd_ffmpeg provide a list of the colorspaces it's willing to output. Remove "out" lines from most entries for libavcodec video decoders in codecs.conf, so that the automatic values are now used instead.
* codecs.conf, stheader.h: support CrystalHD decoding (libavcodec)cehoyos2011-04-131-1/+1
| | | | | | | | | | Add the various decoders to codecs.conf and increase the maximum number of buffered pts in stheader.h (apparently CrystalHD can have very high decoder lag). Patch by Philip Langdale, philipl overt org git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33095 b3059339-0415-0410-9bf9-f77b7e298cf2
* subtitles: add framework for subtitle decodersUoti Urpala2011-01-181-1/+4
| | | | | | | | | | Add a framework for subtitle decoder modules that work more like audio/video decoders do, and change libass rendering of demuxed subtitles to use the new framework. The old subtitle code is messy, with details specific to handling particular subtitle types spread over high-level code. This should make it easier to clean things up and fix some bugs/limitations.
* demux_mkv, ad_ffmpeg: use Matroska OutputSamplingFrequency if availableUoti Urpala2010-11-211-0/+1
| | | | | | | | | | | | | | | | | | Use the value of the OutputSamplingFrequency element instead of the SamplingFrequency element as the "container samplerate". In most cases this only removes a warning, as those typically differ for SBR AAC files and there was already a special case detecting this in ad_ffmpeg. The implementation adds a new "container_out_samplerate" field to the sh_audio struct. Reusing the existing "samplerate" field and the equivalent inside the 'wf' struct and just setting those to the new value instead would probably work (at least I'm not aware of any codec that would need the original SamplingFrequency for initialization). However using a separate field also avoids some ugliness: the 'wf' struct may not exist (though most demuxers create it), and the 'samplerate' field is overwritten to reflect the final value decided by codec when decoding is first initialized.
* demux_lavf: print subtitle type in more casesreimar2010-11-021-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32006 b3059339-0415-0410-9bf9-f77b7e298cf2
* demuxer.c: add new_sh_sub_sid_langUoti Urpala2010-11-021-0/+2
| | | | | | 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.
* 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
* Merge svn changes up to r30136Uoti Urpala2009-12-301-22/+26
|\ | | | | | | Ignore another broken correct-pts change in 30134.
| * Add support for parsing audio streams (though should be easy to extend to video)reimar2009-12-271-0/+4
| | | | | | | | | | | | | | | | | | | | | | via libavcodec. Parsing can be done at the demuxer stage (currently disabled) or at the decoder (ad_ffmpeg, enabled). Should allow using the libavcodec AAC, DTS, ... decoders independent of container format. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30130 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Remove currently unneeded members accidentally added in the last revision.reimar2009-12-271-4/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30129 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Introduce a sh_common struct that contains the parts in common by the audio, ↵reimar2009-12-271-19/+25
| | | | | | | | | | | | | | | | | | | | | | | | video and sub "stream headers". One reason for this is to help avoid/make more obvious things like members with the same function but different name (extradata vs. codecdata etc.), or members with the same name but different semantics (pts for audio vs. pts for video). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30128 b3059339-0415-0410-9bf9-f77b7e298cf2
* | core: Add support for decoder reordering of pts valuesUoti Urpala2009-11-211-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a mode where libavcodec's reordered_opaque feature is used to associate container packet timestamps with decoded frames. This should improve behavior at least for MPEG files with interlaced h264; the previous code does not cope well with the libavformat demuxer producing two field packets with separate timestamps but the libavcodec h264 decoder only producing a single output frame for those two packets (so half the timestamps have no associated output frame). The current libavformat mpeg demuxer seems to finally work with interlaced h264 files and produce valid timestamps which are useful with a mode like this. By default MPlayer now selects between this new mode and the old one automatically based on the number of timestamp problems they cause; by default the new mode is used if both seem to work. The new option -pts-association-mode can be used to force a particular mode. If correct-pts mode is disabled this has no effect on timing. Also remove the "EXPERIMENTAL" marker from the manpage description of -correct-pts.
* | Change libass type names to match upstream renamesUoti Urpala2009-07-291-1/+1
| |
* | Merge svn changes up to r29304Uoti Urpala2009-07-071-0/+18
|\|
| * Add standard license header to all files in libmpdemux.diego2009-05-081-0/+18
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29280 b3059339-0415-0410-9bf9-f77b7e298cf2
* | stheader.h: Allow inclusion before demuxer.hUoti Urpala2009-04-191-4/+5
| | | | | | | | | | | | stheader.h used 'demuxer_t *' without including demuxer.h, causing compilation to fail if demuxer.h had not been included first. Use 'struct demuxer *' instead so the type does not need to be defined.
* | Merge svn changes up to r27841Uoti Urpala2008-10-281-6/+0
|\| | | | | | | | | Conflicts: mplayer.c
| * Factorize vobsub idx/extradata handling.aurel2008-10-271-6/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27841 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r27441Uoti Urpala2008-08-081-2/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: cfg-common-opts.h command.c configure input/input.c libmpcodecs/dec_video.c libmpcodecs/vd.c libmpdemux/stheader.h libvo/sub.c libvo/video_out.c libvo/vo_xv.c libvo/vosub_vidix.c libvo/x11_common.c libvo/x11_common.h mp_core.h mplayer.c stream/stream.h
| * Give a CONFIG_ prefix to preprocessor directives that lacked one anddiego2008-08-071-2/+2
| | | | | | | | | | | | | | change arbitrary prefixes to CONFIG_. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27429 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Start unifying names of internal preprocessor directives.diego2008-07-301-1/+1
| | | | | | | | | | | | | | | | Replace all USE_ prefixes by CONFIG_ prefixes to indicate options which are configurable. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27373 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Make video decoder description structs constUoti Urpala2008-04-251-1/+1
| | | | | | | | | | | | This makes the per-decoder struct vd_functions and its ->info struct constants. Same for the mpcodecs_vd_drivers[] table of pointers to those structs.
* | Remove global vo_flagsUoti Urpala2008-04-251-0/+1
| | | | | | | | Move the information to struct sh_video field.
* | Store video decoder functions in struct sh_video fieldUoti Urpala2008-04-251-0/+1
| | | | | | | | | | | | Remove the global variable mpvdec and move the video decoder pointer to struct sh_video field vd_driver. Audio already had a similar ad_driver field from before.
* | Remove _s/_st suffix from some struct namesUoti Urpala2008-04-251-5/+5
| | | | | | | | | | Since the names are always used after the keyword "struct" having a suffix as in "struct demuxer_st" is almost completely pointless.
* | Remove some unnecessary recursive includesUoti Urpala2008-04-231-6/+3
| | | | | | | | | | | | | | | | Remove some #include lines from headers, some of those removals made possible by using incomplete struct types instead of typedefs. Include mp_osd.h in mplayer.c and command.c after removing it from mp_core.h. Remove "#ifdef USE_ASS" around some "struct ass_track_s *" fields which will now compile even without ASS support.
* | Add option pointer to demuxers and stheader.h structsUoti Urpala2008-04-231-0/+4
| |
* | Declare demuxer *_streams fields with proper typesUoti Urpala2008-04-231-3/+3
|/ | | | | | | | Give sh_audio_t, sh_video_t and sh_sub_t which before had typedef names only a matching struct name (without _t) too. Change the a_streams, v_streams and s_streams demuxer fields from void * to struct sh_audio *, struct sh_video * and struct sh_sub *. Remove a now unnecessary cast from mplayer.c.
* Support 'default' attribute for audio and subtitle tracks.eugeni2008-03-301-0/+2
| | | | | | | | | The first default track is chosen for playback if language-based selection failes. Additionally, for audio tracks, the first one is chosen if there are no default tracks at all. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26301 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add missing header #includes to fix 'make checkheaders'.diego2008-03-051-0/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26175 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add language info to sh_sub_t and sh_audio_t.eugeni2008-02-291-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26114 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add MPLAYER_ prefix to multiple inclusion guards.diego2008-02-221-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26061 b3059339-0415-0410-9bf9-f77b7e298cf2
* typo fix: inited --> initializeddiego2008-02-141-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25994 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add extradata to sh_sub_t.eugeni2008-01-111-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25680 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add explanatory comments to the #endif part of multiple inclusion guards.diego2007-12-311-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25563 b3059339-0415-0410-9bf9-f77b7e298cf2
* Clean up some fields in stheader.h structsuau2007-11-011-3/+2
| | | | | | | | | | | | | | sh_video_t: void *video_out: only assigned to, never read. Remove. sh_video_t: void *vfilter: change type to struct vf_instance_s * sh_audio_t: void *afilter: change type to struct af_stream_s * The latter two never hold different types so there's no reason to use void *. Maybe they were originally defined that way because the option of using pointers to incomplete struct types was missed (the typedefs vf_instance_t and af_stream_t would require extra headers)? git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24919 b3059339-0415-0410-9bf9-f77b7e298cf2
* added .stream_aspect to st_video_t: if non-zero and if not specified otherwisenicodvb2007-09-011-0/+1
| | | | | | | by the user the video pipeline will use it as current aspect ratio git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24319 b3059339-0415-0410-9bf9-f77b7e298cf2
* Do not use leading underscores in multiple inclusion guards, they are reserved.diego2007-07-021-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23709 b3059339-0415-0410-9bf9-f77b7e298cf2
* Consistently use filename as multiple inclusion guard.diego2007-07-021-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23707 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move the sh_audio->delay field to mpctx->delay.uau2007-03-111-1/+0
| | | | | | | | The value is related to overall a/v sync and is not used by audio demuxers or decoders. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22506 b3059339-0415-0410-9bf9-f77b7e298cf2
* Reorganize code to move more things out of main().uau2006-11-201-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21093 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move sh_sub_t to stheader.h, where all the other sh structs are definedreimar2006-11-131-0/+14
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20892 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add forgotten new_sh_subreimar2006-11-131-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20889 b3059339-0415-0410-9bf9-f77b7e298cf2
* Get rid of demux_aid_vid_mismatch mess.reimar2006-08-261-2/+6
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19546 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add a new video pts tracking mode, enabled by option -correct-pts.uau2006-07-061-0/+2
| | | | | | | | | | | | | | This mode has the following differences: - Video timing is correct for streams with B frames, at least with some demuxers. - Video filters can modify frame timestamps and insert new frames, and removing frames is handled better than before. - Some things are known to break, it's not usable as the default yet. Things should work as before when the -correct-pts option is not used. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18922 b3059339-0415-0410-9bf9-f77b7e298cf2
* Change free_sh_audio() to take demuxer and stream id as parametersuau2006-06-141-1/+1
| | | | | | | | | | | | | | (same as new_sh_audio()) instead of sh_audio_t *, use those to remove the pointer from demuxer->a_streams[] before freeing it. Some demuxers use free_sh_audio() to undo the creation of an already-allocated audio stream in case of error. These uses were unsafe since free_sh_audio() freed the data structure but left the pointer in demuxer->a_streams[], leading to double free later in free_demuxer() (and perhaps use of the freed stream before that, I didn't check). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18711 b3059339-0415-0410-9bf9-f77b7e298cf2
* Change common pts variables from floats to doubles. Individual demuxersuau2006-04-271-3/+3
| | | | | | | should be changed later. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18310 b3059339-0415-0410-9bf9-f77b7e298cf2
* 4 - Implement a better way to calculate current audio pts and use it forrtognimp2006-04-241-0/+2
| | | | | | | | | audio decoded with ad_libvorbis, ad_ffmpeg and ad_faad. Patch by Uoti Urpala git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18243 b3059339-0415-0410-9bf9-f77b7e298cf2
* dwStart support for mplayer.corey2006-02-181-0/+2
| | | | | | | | | | | | | | | | | | | * demux_avi sets stream_delay according to dwStart * mplayer adjusts audio_delay according to stream_delay 3 related patches are pending, and I will apply them over the