[FFmpeg-devel] [PATCH] doc/examples/transcoding: use av_packet_rescale_ts()

Stefano Sabatini stefasab at gmail.com
Wed Sep 10 12:17:11 CEST 2014


Simplify.
---
 doc/examples/transcoding.c | 36 +++++++++---------------------------
 1 file changed, 9 insertions(+), 27 deletions(-)

diff --git a/doc/examples/transcoding.c b/doc/examples/transcoding.c
index a8f4210..759c628 100644
--- a/doc/examples/transcoding.c
+++ b/doc/examples/transcoding.c
@@ -385,17 +385,9 @@ static int encode_write_frame(AVFrame *filt_frame, unsigned int stream_index, in
 
     /* prepare packet for muxing */
     enc_pkt.stream_index = stream_index;
-    enc_pkt.dts = av_rescale_q_rnd(enc_pkt.dts,
-            ofmt_ctx->streams[stream_index]->codec->time_base,
-            ofmt_ctx->streams[stream_index]->time_base,
-            AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
-    enc_pkt.pts = av_rescale_q_rnd(enc_pkt.pts,
-            ofmt_ctx->streams[stream_index]->codec->time_base,
-            ofmt_ctx->streams[stream_index]->time_base,
-            AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
-    enc_pkt.duration = av_rescale_q(enc_pkt.duration,
-            ofmt_ctx->streams[stream_index]->codec->time_base,
-            ofmt_ctx->streams[stream_index]->time_base);
+    av_packet_rescale_ts(&enc_pkt,
+                         ofmt_ctx->streams[stream_index]->codec->time_base,
+                         ofmt_ctx->streams[stream_index]->time_base);
 
     av_log(NULL, AV_LOG_DEBUG, "Muxing frame\n");
     /* mux encoded frame */
@@ -509,14 +501,9 @@ int main(int argc, char **argv)
                 ret = AVERROR(ENOMEM);
                 break;
             }
-            packet.dts = av_rescale_q_rnd(packet.dts,
-                    ifmt_ctx->streams[stream_index]->time_base,
-                    ifmt_ctx->streams[stream_index]->codec->time_base,
-                    AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
-            packet.pts = av_rescale_q_rnd(packet.pts,
-                    ifmt_ctx->streams[stream_index]->time_base,
-                    ifmt_ctx->streams[stream_index]->codec->time_base,
-                    AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
+            av_packet_rescale_ts(&packet,
+                                 ifmt_ctx->streams[stream_index]->time_base,
+                                 ifmt_ctx->streams[stream_index]->codec->time_base);
             dec_func = (type == AVMEDIA_TYPE_VIDEO) ? avcodec_decode_video2 :
                 avcodec_decode_audio4;
             ret = dec_func(ifmt_ctx->streams[stream_index]->codec, frame,
@@ -538,14 +525,9 @@ int main(int argc, char **argv)
             }
         } else {
             /* remux this frame without reencoding */
-            packet.dts = av_rescale_q_rnd(packet.dts,
-                    ifmt_ctx->streams[stream_index]->time_base,
-                    ofmt_ctx->streams[stream_index]->time_base,
-                    AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
-            packet.pts = av_rescale_q_rnd(packet.pts,
-                    ifmt_ctx->streams[stream_index]->time_base,
-                    ofmt_ctx->streams[stream_index]->time_base,
-                    AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
+            av_packet_rescale_ts(&packet,
+                                 ifmt_ctx->streams[stream_index]->time_base,
+                                 ofmt_ctx->streams[stream_index]->time_base);
 
             ret = av_interleaved_write_frame(ofmt_ctx, &packet);
             if (ret < 0)
-- 
1.8.3.2



More information about the ffmpeg-devel mailing list