aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2008-08-20 23:17:43 +0000
committerMichael Niedermayer <michaelni@gmx.at>2008-08-20 23:17:43 +0000
commit7fb262b568eef705f7fd50379e006b39684c9aad (patch)
tree83c7ea34a1dfc9a4306a238eafd0d260c77aaea3
parent79de84f2634e60470183b9b314ecb7ed2264cc4c (diff)
downloadffmpeg-7fb262b568eef705f7fd50379e006b39684c9aad.tar.gz
Simplify timestamp reordering by using the new API.
Originally committed as revision 14872 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--ffplay.c24
1 files changed, 3 insertions, 21 deletions
diff --git a/ffplay.c b/ffplay.c
index feb4bae006..38080e70dd 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -1330,21 +1330,6 @@ static int output_picture2(VideoState *is, AVFrame *src_frame, double pts1)
return queue_picture(is, src_frame, pts);
}
-static uint64_t global_video_pkt_pts= AV_NOPTS_VALUE;
-
-static int my_get_buffer(struct AVCodecContext *c, AVFrame *pic){
- int ret= avcodec_default_get_buffer(c, pic);
- uint64_t *pts= av_malloc(sizeof(uint64_t));
- *pts= global_video_pkt_pts;
- pic->opaque= pts;
- return ret;
-}
-
-static void my_release_buffer(struct AVCodecContext *c, AVFrame *pic){
- if(pic) av_freep(&pic->opaque);
- avcodec_default_release_buffer(c, pic);
-}
-
static int video_thread(void *arg)
{
VideoState *is = arg;
@@ -1367,14 +1352,14 @@ static int video_thread(void *arg)
/* NOTE: ipts is the PTS of the _first_ picture beginning in
this packet, if any */
- global_video_pkt_pts= pkt->pts;
+ is->video_st->codec->reordered_opaque= pkt->pts;
len1 = avcodec_decode_video(is->video_st->codec,
frame, &got_picture,
pkt->data, pkt->size);
if( (decoder_reorder_pts || pkt->dts == AV_NOPTS_VALUE)
- && frame->opaque && *(uint64_t*)frame->opaque != AV_NOPTS_VALUE)
- pts= *(uint64_t*)frame->opaque;
+ && frame->reordered_opaque != AV_NOPTS_VALUE)
+ pts= frame->reordered_opaque;
else if(pkt->dts != AV_NOPTS_VALUE)
pts= pkt->dts;
else
@@ -1802,9 +1787,6 @@ static int stream_component_open(VideoState *is, int stream_index)
packet_queue_init(&is->videoq);
is->video_tid = SDL_CreateThread(video_thread, is);
-
- enc-> get_buffer= my_get_buffer;
- enc->release_buffer= my_release_buffer;
break;
case CODEC_TYPE_SUBTITLE:
is->subtitle_stream = stream_index;