1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-28 18:12:22 +00:00
mpv/libmpcodecs
sesse 45fd2e0457 Use the high-level QuickTime decoding APIs (DecompressSequenceFrameS and
friends) instead of the unsupported, internal ones (ImageCodecBeginBand
etc.). This is a prerequisite for, among others, Apple ProRes 4:2:2 support,
and simplifies the file by quite a bit.

Tested on Linux with all existing QuickTime codecs I could get to work in the
first place; qt261, qtavui, qtsvq3 have no change. qtcvid appears to not give
bit-exact the same output as before, but it looks just the same in playback
to me. qt3ivx stops crashing on exit (so works better than before). With some
extra patches and a codecs.conf entry, ProRes 4:2:2 also works, including on
Linux.

Since codec initialization is now actually done on decoder init instead of on
first frame, fallback should also work a bit better (although usually, qtvideo
is last in the chain). Also made the decoder complain explicitly if the
demuxer data is not there (ie., the user tried to run without -demuxer mov).

This patch is a cleaned up version of what Andrew Wason (rectalogic A
rectalogic D com) posted to mplayer-dev-eng in June.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30899 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-15 12:05:56 +00:00
..
native Make function Gsm_Long_Term_Synthesis_Filtering() static, only used in xa_gsm.c. 2010-02-27 21:02:14 +00:00
ad_acm.c Add header for AVI print functions; avoids many forward declarations. 2010-02-18 00:18:50 +00:00
ad_alaw.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_dk3adpcm.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_dmo.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_dshow.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_dvdpcm.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_faad.c libmpcodecs: Remove pointless leftover '#if 1' preprocessor instructions. 2010-02-17 21:36:00 +00:00
ad_ffmpeg.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_hwac3.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_hwmpa.c Fix check for wrong variable: len can be unitialized but not normally < 0, 2010-02-25 22:06:05 +00:00
ad_imaadpcm.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_internal.h Mark ad_functions_t structures and mpcodecs_ad_drivers array as const. 2010-02-20 21:27:49 +00:00
ad_liba52.c libmpcodecs: Mark functions not used outside of their files as static. 2010-02-16 16:16:42 +00:00
ad_libdca.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_libdv.c Add header for init_global_rawdv_decoder() instead of forward declaring it. 2010-02-16 14:52:59 +00:00
ad_libmad.c Do not cast the results of malloc/calloc/realloc. 2010-02-26 15:01:37 +00:00
ad_libvorbis.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_mp3lib.c Add header file for mplayer_audio_read() instead of forward declaring it. 2010-02-16 13:16:17 +00:00
ad_mp3lib.h Add header file for mplayer_audio_read() instead of forward declaring it. 2010-02-16 13:16:17 +00:00
ad_mpc.c cosmetics: Remove pointless empty lines at EOF. 2010-02-20 21:02:49 +00:00
ad_msadpcm.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_msgsm.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_pcm.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_qtaudio.c Fix the stack crash(SYS3171) on OS/2 when playing qtaudio/qtvideo. 2010-02-19 13:50:16 +00:00
ad_realaud.c Replace separate Win32, XAnim and Real codec directories by one global dir. 2010-03-14 16:13:32 +00:00
ad_sample.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
ad_speex.c Support extradata format of the speex.acm windows codec formerly available 2010-03-12 18:19:51 +00:00
ad_twin.c Add header for AVI print functions; avoids many forward declarations. 2010-02-18 00:18:50 +00:00
ad.c Mark ad_functions_t structures and mpcodecs_ad_drivers array as const. 2010-02-20 21:27:49 +00:00
ad.h Mark member info of struct ad_functions_s as const. 2010-02-22 14:04:39 +00:00
ae_faac.c Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
ae_faac.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
ae_lame.c #include corresponding .h files in .c files. 2010-02-16 15:03:03 +00:00
ae_lame.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
ae_lavc.c cosmetics: Remove pointless empty lines at EOF. 2010-02-20 21:02:49 +00:00
ae_lavc.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
ae_pcm.c cosmetics: Remove pointless empty lines at EOF. 2010-02-20 21:02:49 +00:00
ae_pcm.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
ae_toolame.c Make close_toolame() static, only used in ae_toolame.c. 2010-02-28 00:28:14 +00:00
ae_toolame.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
ae_twolame.c Make close_twolame() static, only used in ae_twolame.c. 2010-02-28 00:23:58 +00:00
ae_twolame.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
ae.c Do not cast the results of malloc/calloc/realloc. 2010-02-26 15:01:37 +00:00
ae.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
cmmx.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
dec_audio.c Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
dec_audio.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
dec_teletext.c libmpcodecs: Remove pointless leftover '#if 1' preprocessor instructions. 2010-02-17 21:36:00 +00:00
dec_teletext.h Add support for DVB teletext. 2009-11-10 11:31:47 +00:00
dec_video.c Add const to mpvdec declaration 2010-02-25 22:23:58 +00:00
dec_video.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
img_format.c Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
img_format.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
mp_image.c Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
mp_image.h Do not cast the results of malloc/calloc/realloc. 2010-02-26 15:01:37 +00:00
mpc_info.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
pullup.c cosmetics: Remove pointless empty lines at EOF. 2010-02-20 21:02:49 +00:00
pullup.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
vd_dmo.c Partially revert r30645, the final output format is determined by 2010-03-03 21:32:31 +00:00
vd_dshow.c Partially revert r30645, the final output format is determined by 2010-03-03 21:32:31 +00:00
vd_ffmpeg.c Handle negative height in draw_slice from FFmpeg in vd_ffmpeg.c, since at 2010-02-17 23:46:57 +00:00
vd_hmblck.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
vd_ijpg.c libmpcodecs: Mark functions not used outside of their files as static. 2010-02-16 16:16:42 +00:00
vd_internal.h Make vd_functions_t describing codecs const. 2010-02-14 11:04:14 +00:00
vd_libdv.c Add header for init_global_rawdv_decoder() instead of forward declaring it. 2010-02-16 14:52:59 +00:00
vd_libdv.h Add header for init_global_rawdv_decoder() instead of forward declaring it. 2010-02-16 14:52:59 +00:00
vd_libmpeg2.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
vd_lzo.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
vd_mpegpes.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
vd_mpng.c Do not cast the results of malloc/calloc/realloc. 2010-02-26 15:01:37 +00:00
vd_mtga.c Do not cast the results of malloc/calloc/realloc. 2010-02-26 15:01:37 +00:00
vd_null.c cosmetics: Remove pointless empty lines at EOF. 2010-02-20 21:02:49 +00:00
vd_qtvideo.c Use the high-level QuickTime decoding APIs (DecompressSequenceFrameS and 2010-03-15 12:05:56 +00:00
vd_raw.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
vd_realvid.c Replace separate Win32, XAnim and Real codec directories by one global dir. 2010-03-14 16:13:32 +00:00
vd_sgi.c Do not cast the results of malloc/calloc/realloc. 2010-02-26 15:01:37 +00:00
vd_theora.c Add support for decoding 4:2:2 and 4:4:4 Theora files. 2010-02-14 15:39:52 +00:00
vd_vfw.c Add header for AVI print functions; avoids many forward declarations. 2010-02-18 00:18:50 +00:00
vd_vfwex.c
vd_xanim.c Replace separate Win32, XAnim and Real codec directories by one global dir. 2010-03-14 16:13:32 +00:00
vd_xvid4.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
vd_zrmjpeg.c Mark all ad_info_t/vd_info_t structure declarations as const. 2010-02-12 16:29:34 +00:00
vd.c Add const to mpvdec declaration 2010-02-25 22:23:58 +00:00
vd.h Declare externally used variables from vd.c as extern in vd.h. 2010-02-22 09:51:44 +00:00
ve_lavc.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
ve_libdv.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
ve_nuv.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
ve_qtvideo.c Fix QuickTime emulated OSErr type. 2010-03-06 11:12:32 +00:00
ve_raw.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
ve_vfw.c Do not cast the results of malloc/calloc/realloc. 2010-02-26 15:01:37 +00:00
ve_x264.c Reuse the keyframe flag from x264 instead of trying to derive it on our own. 2010-02-28 07:52:34 +00:00
ve_xvid4.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
ve.c cosmetics: Remove pointless empty lines at EOF. 2010-02-20 21:02:49 +00:00
vf_1bpp.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_2xsai.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_ass.c Declare externally used variables from vd.c as extern in vd.h. 2010-02-22 09:51:44 +00:00
vf_blackframe.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_bmovl.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_boxblur.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_crop.c Declare externally used variables from vd.c as extern in vd.h. 2010-02-22 09:51:44 +00:00
vf_cropdetect.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_decimate.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_delogo.c Mark all fmt_list arrays as const. 2010-02-26 19:56:03 +00:00
vf_denoise3d.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_detc.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_dint.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_divtc.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_down3dright.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_dsize.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_dvbscale.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_eq2.c Do not cast the results of malloc/calloc/realloc. 2010-02-26 15:01:37 +00:00
vf_eq.c Mark a bunch of video filter structures as const. 2010-02-22 14:03:46 +00:00
vf_expand.c Mark a bunch of video filter structures as const. 2010-02-22 14:03:46 +00:00
vf_field.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_fil.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_filmdint.c Declare externally used variables from vd.c as extern in vd.h. 2010-02-22 09:51:44 +00:00
vf_fixpts.c Enable ASS/SSA subtitle support in mencoder 2010-03-05 23:13:08 +00:00
vf_flip.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_format.c Mark vf_opts/vf_opts_fields structures as const. 2010-02-26 17:21:06 +00:00
vf_framestep.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_fspp.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_geq.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_gradfun.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_halfpack.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_harddup.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_hqdn3d.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_hue.c Mark vf_opts/vf_opts_fields structures as const. 2010-02-26 17:21:06 +00:00
vf_il.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_ilpack.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_ivtc.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_kerndeint.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_lavc.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_lavcdeint.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_mcdeint.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_mirror.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_noformat.c Mark vf_opts/vf_opts_fields structures as const. 2010-02-26 17:21:06 +00:00
vf_noise.c Mark all fmt_list arrays as const. 2010-02-26 19:56:03 +00:00
vf_ow.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_palette.c Mark a bunch of video filter structures as const. 2010-02-22 14:03:46 +00:00
vf_perspective.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_phase.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_pp7.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_pp.c Mark all fmt_list arrays as const. 2010-02-26 19:56:03 +00:00
vf_pullup.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_qp.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_rectangle.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_remove_logo.c Get rid of many ugly casts. 2010-02-28 01:06:09 +00:00
vf_rgb2bgr.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_rgbtest.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_rotate.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_sab.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_scale.c Mark a bunch of video filter structures as const. 2010-02-22 14:03:46 +00:00
vf_scale.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
vf_screenshot.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_smartblur.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_softpulldown.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_softskip.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_spp.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_swapuv.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_telecine.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_test.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_tfields.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_tile.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_tinterlace.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_unsharp.c Mark all fmt_list arrays as const. 2010-02-26 19:56:03 +00:00
vf_uspp.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_vo.c Remove commented-out cruft line. 2010-02-22 14:02:18 +00:00
vf_yadif.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_yuvcsp.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_yuy2.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_yvu9.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf_zrmjpeg.c cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vf.c Enable ASS/SSA subtitle support in mencoder 2010-03-05 23:13:08 +00:00
vf.h cosmetics: Rename struct vf_instance_s --> vf_instance. 2010-02-21 15:48:03 +00:00
vfcap.h Add missing license headers to all files in the libmpcodecs directory. 2010-01-30 16:57:40 +00:00
vqf.h whitespace cosmetics: Remove all trailing whitespace. 2009-05-13 02:58:57 +00:00