1 --- vice-2.4/src/gfxoutputdrv/ffmpegdrv.c.orig 2016-10-20 08:39:01.494075298 +0200
2 +++ vice-2.4/src/gfxoutputdrv/ffmpegdrv.c 2016-10-20 08:39:21.217744132 +0200
4 #include "../sounddrv/soundmovie.h"
6 static gfxoutputdrv_codec_t avi_audio_codeclist[] = {
7 - { CODEC_ID_MP2, "MP2" },
8 - { CODEC_ID_MP3, "MP3" },
9 - { CODEC_ID_FLAC, "FLAC" },
10 - { CODEC_ID_PCM_S16LE, "PCM uncompressed" },
11 + { AV_CODEC_ID_MP2, "MP2" },
12 + { AV_CODEC_ID_MP3, "MP3" },
13 + { AV_CODEC_ID_FLAC, "FLAC" },
14 + { AV_CODEC_ID_PCM_S16LE, "PCM uncompressed" },
18 static gfxoutputdrv_codec_t avi_video_codeclist[] = {
19 - { CODEC_ID_MPEG4, "MPEG4 (DivX)" },
20 - { CODEC_ID_MPEG1VIDEO, "MPEG1" },
21 - { CODEC_ID_FFV1, "FFV1 (lossless)" },
22 - { CODEC_ID_H264, "H264" },
23 - { CODEC_ID_THEORA, "Theora" },
24 + { AV_CODEC_ID_MPEG4, "MPEG4 (DivX)" },
25 + { AV_CODEC_ID_MPEG1VIDEO, "MPEG1" },
26 + { AV_CODEC_ID_FFV1, "FFV1 (lossless)" },
27 + { AV_CODEC_ID_H264, "H264" },
28 + { AV_CODEC_ID_THEORA, "Theora" },
32 static gfxoutputdrv_codec_t ogg_audio_codeclist[] = {
33 - { CODEC_ID_FLAC, "FLAC" },
34 + { AV_CODEC_ID_FLAC, "FLAC" },
38 static gfxoutputdrv_codec_t ogg_video_codeclist[] = {
39 - { CODEC_ID_THEORA, "Theora" },
40 + { AV_CODEC_ID_THEORA, "Theora" },
45 { "FFMPEGVideoBitrate", VICE_FFMPEG_VIDEO_RATE_DEFAULT,
47 &video_bitrate, set_video_bitrate, NULL },
48 - { "FFMPEGAudioCodec", CODEC_ID_MP3, RES_EVENT_NO, NULL,
49 + { "FFMPEGAudioCodec", AV_CODEC_ID_MP3, RES_EVENT_NO, NULL,
50 &audio_codec, set_audio_codec, NULL },
51 - { "FFMPEGVideoCodec", CODEC_ID_MPEG4, RES_EVENT_NO, NULL,
52 + { "FFMPEGVideoCodec", AV_CODEC_ID_MPEG4, RES_EVENT_NO, NULL,
53 &video_codec, set_video_codec, NULL },
54 { "FFMPEGVideoHalveFramerate", 0, RES_EVENT_NO, NULL,
55 &video_halve_framerate, set_video_halve_framerate, NULL },
57 if (c->frame_size <= 1) {
58 audio_inbuf_samples = audio_outbuf_size;
59 switch(st->codec->codec_id) {
60 - case CODEC_ID_PCM_S16LE:
61 - case CODEC_ID_PCM_S16BE:
62 - case CODEC_ID_PCM_U16LE:
63 - case CODEC_ID_PCM_U16BE:
64 + case AV_CODEC_ID_PCM_S16LE:
65 + case AV_CODEC_ID_PCM_S16BE:
66 + case AV_CODEC_ID_PCM_U16LE:
67 + case AV_CODEC_ID_PCM_U16BE:
68 audio_inbuf_samples >>= 1;
75 - if (ffmpegdrv_fmt->audio_codec == CODEC_ID_NONE)
76 + if (ffmpegdrv_fmt->audio_codec == AV_CODEC_ID_NONE)
79 *audio_in = &ffmpegdrv_audio_in;
81 picture is needed too. It is then converted to the required
84 - if (c->pix_fmt != PIX_FMT_RGB24) {
85 - tmp_picture = ffmpegdrv_alloc_picture(PIX_FMT_RGB24,
86 + if (c->pix_fmt != AV_PIX_FMT_RGB24) {
87 + tmp_picture = ffmpegdrv_alloc_picture(AV_PIX_FMT_RGB24,
90 log_debug("ffmpegdrv: could not allocate temporary picture");
95 - if (ffmpegdrv_fmt->video_codec == CODEC_ID_NONE)
96 + if (ffmpegdrv_fmt->video_codec == AV_CODEC_ID_NONE)
99 st = (*ffmpeglib.p_av_new_stream)(ffmpegdrv_oc, 0);
100 @@ -573,23 +573,23 @@
102 c->time_base.num = 1;
103 c->gop_size = 12; /* emit one intra frame every twelve frames at most */
104 - c->pix_fmt = PIX_FMT_YUV420P;
105 + c->pix_fmt = AV_PIX_FMT_YUV420P;
107 /* Avoid format conversion which would lead to loss of quality */
108 - if (c->codec_id == CODEC_ID_FFV1) {
109 - c->pix_fmt = PIX_FMT_RGB32;
110 + if (c->codec_id == AV_CODEC_ID_FFV1) {
111 + c->pix_fmt = AV_PIX_FMT_RGB32;
114 /* Use XVID instead of FMP4 FOURCC for better compatibility */
115 - if (c->codec_id == CODEC_ID_MPEG4) {
116 + if (c->codec_id == AV_CODEC_ID_MPEG4) {
117 c->codec_tag = MKTAG('X','V','I','D');
120 #ifdef HAVE_FFMPEG_SWSCALE
122 - if (c->pix_fmt != PIX_FMT_RGB24) {
123 + if (c->pix_fmt != AV_PIX_FMT_RGB24) {
124 sws_ctx = (*ffmpeglib.p_sws_getContext)
125 - (video_width, video_height, PIX_FMT_RGB24,
126 + (video_width, video_height, AV_PIX_FMT_RGB24,
127 video_width, video_height, c->pix_fmt,
134 - if (c->pix_fmt != PIX_FMT_RGB24) {
135 + if (c->pix_fmt != AV_PIX_FMT_RGB24) {
136 ffmpegdrv_fill_rgb_image(screenshot, tmp_picture);
137 #ifdef HAVE_FFMPEG_SWSCALE
138 if (sws_ctx != NULL) {
142 (*ffmpeglib.p_img_convert)((AVPicture *)picture, c->pix_fmt,
143 - (AVPicture *)tmp_picture, PIX_FMT_RGB24,
144 + (AVPicture *)tmp_picture, AV_PIX_FMT_RGB24,
145 c->width, c->height);
148 --- vice-2.4/src/gfxoutputdrv/ffmpeglib.h.orig 2016-10-20 08:42:01.130057414 +0200
149 +++ vice-2.4/src/gfxoutputdrv/ffmpeglib.h 2016-10-20 08:42:13.940218343 +0200
151 #ifdef HAVE_FFMPEG_SWSCALE
152 /* swscale functions */
153 typedef struct SwsContext * (*sws_getContext_t)(int srcW, int srcH,
154 - enum PixelFormat srcFormat, int dstW, int dstH, enum PixelFormat dstFormat,
155 + enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstFormat,
156 int flags, SwsFilter *srcFilter, SwsFilter *dstFilter, double *param);
157 typedef void (*sws_freeContext_t)(struct SwsContext *swsContext);
158 typedef int (*sws_scale_t)(struct SwsContext *context, uint8_t* srcSlice[],