There are no formats supporting it anymore and it is deprecated.
Update the documentation accordingly.
---
The wiki page has been updated as well.
avconv.c | 21 +--------------------
doc/examples/output.c | 42 ++++++++++++------------------------------
libavformat/avformat.h | 4 ++--
3 files changed, 15 insertions(+), 52 deletions(-)
diff --git a/avconv.c b/avconv.c
index 75b00f1..f7c264a 100644
--- a/avconv.c
+++ b/avconv.c
@@ -488,24 +488,7 @@ static void do_video_out(AVFormatContext *s,
if (ost->frame_number >= ost->max_frames)
return;
- if (s->oformat->flags & AVFMT_RAWPICTURE &&
- enc->codec->id == AV_CODEC_ID_RAWVIDEO) {
- /* raw pictures are written as AVPicture structure to
- avoid any copies. We support temporarily the older
- method. */
-#if FF_API_CODED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- enc->coded_frame->interlaced_frame = in_picture->interlaced_frame;
- enc->coded_frame->top_field_first = in_picture->top_field_first;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
- pkt.data = (uint8_t *)in_picture;
- pkt.size = sizeof(AVPicture);
- pkt.pts = av_rescale_q(in_picture->pts, enc->time_base,
ost->st->time_base);
- pkt.flags |= AV_PKT_FLAG_KEY;
-
- write_frame(s, &pkt, ost);
- } else {
+ {
int got_packet;
if (enc->flags & (AV_CODEC_FLAG_INTERLACED_DCT |
AV_CODEC_FLAG_INTERLACED_ME) &&
@@ -959,8 +942,6 @@ static void flush_encoders(void)
if (enc->codec_type == AVMEDIA_TYPE_AUDIO && enc->frame_size <= 1)
continue;
- if (enc->codec_type == AVMEDIA_TYPE_VIDEO && (os->oformat->flags &
AVFMT_RAWPICTURE) && enc->codec->id == AV_CODEC_ID_RAWVIDEO)
- continue;
for (;;) {
int (*encode)(AVCodecContext*, AVPacket*, const AVFrame*, int*) =
NULL;
diff --git a/doc/examples/output.c b/doc/examples/output.c
index af5445b..c883429 100644
--- a/doc/examples/output.c
+++ b/doc/examples/output.c
@@ -491,48 +491,30 @@ static int write_video_frame(AVFormatContext *oc,
OutputStream *ost)
int ret;
AVCodecContext *c;
AVFrame *frame;
+ AVPacket pkt = { 0 };
int got_packet = 0;
c = ost->st->codec;
frame = get_video_frame(ost);
- if (oc->oformat->flags & AVFMT_RAWPICTURE) {
- /* a hack to avoid data copy with some raw video muxers */
- AVPacket pkt;
- av_init_packet(&pkt);
-
- if (!frame)
- return 1;
+ av_init_packet(&pkt);
- pkt.flags |= AV_PKT_FLAG_KEY;
- pkt.stream_index = ost->st->index;
- pkt.data = (uint8_t *)frame;
- pkt.size = sizeof(AVPicture);
+ /* encode the image */
+ ret = avcodec_encode_video2(c, &pkt, frame, &got_packet);
+ if (ret < 0) {
+ fprintf(stderr, "Error encoding a video frame\n");
+ exit(1);
+ }
- pkt.pts = pkt.dts = frame->pts;
+ if (got_packet) {
av_packet_rescale_ts(&pkt, c->time_base, ost->st->time_base);
+ pkt.stream_index = ost->st->index;
+ /* Write the compressed frame to the media file. */
ret = av_interleaved_write_frame(oc, &pkt);
- } else {
- AVPacket pkt = { 0 };
- av_init_packet(&pkt);
-
- /* encode the image */
- ret = avcodec_encode_video2(c, &pkt, frame, &got_packet);
- if (ret < 0) {
- fprintf(stderr, "Error encoding a video frame\n");
- exit(1);
- }
-
- if (got_packet) {
- av_packet_rescale_ts(&pkt, c->time_base, ost->st->time_base);
- pkt.stream_index = ost->st->index;
-
- /* Write the compressed frame to the media file. */
- ret = av_interleaved_write_frame(oc, &pkt);
- }
}
+
if (ret != 0) {
fprintf(stderr, "Error while writing video frame\n");
exit(1);
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index aa11cff..f0a8396 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -414,7 +414,7 @@ typedef struct AVProbeData {
#define AVFMT_NEEDNUMBER 0x0002 /**< Needs '%d' in filename. */
#define AVFMT_SHOW_IDS 0x0008 /**< Show format stream IDs numbers. */
#define AVFMT_RAWPICTURE 0x0020 /**< Format wants AVPicture structure for
- raw picture data. */
+ raw picture data. Unused and deprecated
*/
#define AVFMT_GLOBALHEADER 0x0040 /**< Format wants global header. */
#define AVFMT_NOTIMESTAMPS 0x0080 /**< Format does not need / have any
timestamps. */
#define AVFMT_GENERIC_INDEX 0x0100 /**< Use generic index building code. */
@@ -454,7 +454,7 @@ typedef struct AVOutputFormat {
enum AVCodecID video_codec; /**< default video 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_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH,
* AVFMT_TS_NONSTRICT
--
2.5.0
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel