Merge commit '34ed5c2e4d9b7fe5c9b3aae2da5599fabb95c02e'
* commit '34ed5c2e4d9b7fe5c9b3aae2da5599fabb95c02e': avformat: Do not use AVFMT_RAWPICTURE Removal from ffmpeg.c not merged because some parts of avdevice still use it Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
This commit is contained in:
commit
1899b25799
@ -498,39 +498,20 @@ static int write_video_frame(AVFormatContext *oc, OutputStream *ost)
|
|||||||
|
|
||||||
frame = get_video_frame(ost);
|
frame = get_video_frame(ost);
|
||||||
|
|
||||||
if (oc->oformat->flags & AVFMT_RAWPICTURE) {
|
AVPacket pkt = { 0 };
|
||||||
/* a hack to avoid data copy with some raw video muxers */
|
av_init_packet(&pkt);
|
||||||
AVPacket pkt;
|
|
||||||
av_init_packet(&pkt);
|
|
||||||
|
|
||||||
if (!frame)
|
/* encode the image */
|
||||||
return 1;
|
ret = avcodec_encode_video2(c, &pkt, frame, &got_packet);
|
||||||
|
if (ret < 0) {
|
||||||
|
fprintf(stderr, "Error encoding video frame: %s\n", av_err2str(ret));
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
pkt.flags |= AV_PKT_FLAG_KEY;
|
if (got_packet) {
|
||||||
pkt.stream_index = ost->st->index;
|
ret = write_frame(oc, &c->time_base, ost->st, &pkt);
|
||||||
pkt.data = (uint8_t *)frame;
|
|
||||||
pkt.size = sizeof(AVPicture);
|
|
||||||
|
|
||||||
pkt.pts = pkt.dts = frame->pts;
|
|
||||||
av_packet_rescale_ts(&pkt, c->time_base, ost->st->time_base);
|
|
||||||
|
|
||||||
ret = av_interleaved_write_frame(oc, &pkt);
|
|
||||||
} else {
|
} else {
|
||||||
AVPacket pkt = { 0 };
|
ret = 0;
|
||||||
av_init_packet(&pkt);
|
|
||||||
|
|
||||||
/* encode the image */
|
|
||||||
ret = avcodec_encode_video2(c, &pkt, frame, &got_packet);
|
|
||||||
if (ret < 0) {
|
|
||||||
fprintf(stderr, "Error encoding video frame: %s\n", av_err2str(ret));
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (got_packet) {
|
|
||||||
ret = write_frame(oc, &c->time_base, ost->st, &pkt);
|
|
||||||
} else {
|
|
||||||
ret = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
@ -465,8 +465,10 @@ typedef struct AVProbeData {
|
|||||||
#define AVFMT_NOFILE 0x0001
|
#define AVFMT_NOFILE 0x0001
|
||||||
#define AVFMT_NEEDNUMBER 0x0002 /**< Needs '%d' in filename. */
|
#define AVFMT_NEEDNUMBER 0x0002 /**< Needs '%d' in filename. */
|
||||||
#define AVFMT_SHOW_IDS 0x0008 /**< Show format stream IDs numbers. */
|
#define AVFMT_SHOW_IDS 0x0008 /**< Show format stream IDs numbers. */
|
||||||
|
#if FF_API_LAVF_FMT_RAWPICTURE
|
||||||
#define AVFMT_RAWPICTURE 0x0020 /**< Format wants AVPicture structure for
|
#define AVFMT_RAWPICTURE 0x0020 /**< Format wants AVPicture structure for
|
||||||
raw picture data. */
|
raw picture data. @deprecated Not used anymore */
|
||||||
|
#endif
|
||||||
#define AVFMT_GLOBALHEADER 0x0040 /**< Format wants global header. */
|
#define AVFMT_GLOBALHEADER 0x0040 /**< Format wants global header. */
|
||||||
#define AVFMT_NOTIMESTAMPS 0x0080 /**< Format does not need / have any timestamps. */
|
#define AVFMT_NOTIMESTAMPS 0x0080 /**< Format does not need / have any timestamps. */
|
||||||
#define AVFMT_GENERIC_INDEX 0x0100 /**< Use generic index building code. */
|
#define AVFMT_GENERIC_INDEX 0x0100 /**< Use generic index building code. */
|
||||||
@ -511,7 +513,7 @@ typedef struct AVOutputFormat {
|
|||||||
enum AVCodecID video_codec; /**< default video codec */
|
enum AVCodecID video_codec; /**< default video codec */
|
||||||
enum AVCodecID subtitle_codec; /**< default subtitle codec */
|
enum AVCodecID subtitle_codec; /**< default subtitle codec */
|
||||||
/**
|
/**
|
||||||
* can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_RAWPICTURE,
|
* can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER,
|
||||||
* AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS,
|
* AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS,
|
||||||
* AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH,
|
* AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH,
|
||||||
* AVFMT_TS_NONSTRICT
|
* AVFMT_TS_NONSTRICT
|
||||||
|
@ -65,6 +65,9 @@
|
|||||||
#ifndef FF_API_URL_FEOF
|
#ifndef FF_API_URL_FEOF
|
||||||
#define FF_API_URL_FEOF (LIBAVFORMAT_VERSION_MAJOR < 58)
|
#define FF_API_URL_FEOF (LIBAVFORMAT_VERSION_MAJOR < 58)
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef FF_API_LAVF_FMT_RAWPICTURE
|
||||||
|
#define FF_API_LAVF_FMT_RAWPICTURE (LIBAVFORMAT_VERSION_MAJOR < 58)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef FF_API_R_FRAME_RATE
|
#ifndef FF_API_R_FRAME_RATE
|
||||||
#define FF_API_R_FRAME_RATE 1
|
#define FF_API_R_FRAME_RATE 1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user