Commit Graph

29 Commits

Author SHA1 Message Date
Michael Niedermayer
e36916a63f avcodec/pthread_frame: fix setting hwaccel with threads and get_format()
Fixes assertion failure with vdpau and vlc
Fixes Ticket3742

Tested-by: oromit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 19:58:58 +02:00
Michael Niedermayer
ab1e191720 avcodec/pthread_frame: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-08 16:34:20 +02:00
Dale Curtis
ca2fd25988 Fix compilation errors when deprecated features are disabled.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 22:55:28 +02:00
Michael Niedermayer
55fe1582cb avcodec/pthread_frame: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 19:36:29 +02:00
Michael Niedermayer
af72f62d7b Merge commit '9929b3564c0dca42ed7baa6798ef15b6f0013c83'
* commit '9929b3564c0dca42ed7baa6798ef15b6f0013c83':
  pthread_frame: simplify the code by using new AVPacket API

Conflicts:
	libavcodec/pthread_frame.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 19:02:36 +02:00
Anton Khirnov
9929b3564c pthread_frame: simplify the code by using new AVPacket API
This also handles side data properly.
2014-05-19 13:12:46 +02:00
Michael Niedermayer
2ec4586d77 Merge commit 'dd2d3b766b20196d0b65a82e3d897ccecbf7adb8'
* commit 'dd2d3b766b20196d0b65a82e3d897ccecbf7adb8':
  lavc: Add hwaccel private data and init/uninit callbacks

Conflicts:
	libavcodec/avcodec.h
	libavcodec/internal.h
	libavcodec/pthread_frame.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 00:21:44 +02:00
Michael Niedermayer
d93cf093f8 Merge commit '632ad2248e2e5d8cd4b51e6c87c943a38c3da425'
* commit '632ad2248e2e5d8cd4b51e6c87c943a38c3da425':
  lavc: Add an internal wrapper around get_format()

Conflicts:
	libavcodec/h264_slice.c
	libavcodec/mpeg12dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 21:48:32 +02:00
Anton Khirnov
dd2d3b766b lavc: Add hwaccel private data and init/uninit callbacks 2014-05-11 14:59:07 +02:00
Michael Niedermayer
59a53842d3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: operate with pointers to AVFrames instead of whole structs

Conflicts:
	libavcodec/h261dec.c
	libavcodec/h263dec.c
	libavcodec/intrax8.c
	libavcodec/mpeg12enc.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo.h
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_motion.c
	libavcodec/mpegvideo_xvmc.c
	libavcodec/msmpeg4.c
	libavcodec/ratecontrol.c
	libavcodec/vaapi.c
	libavcodec/vc1dec.c
	libavcodec/vdpau_vc1.c

See: fc567ac49e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 15:18:46 +02:00
wm4
f6774f905f mpegvideo: operate with pointers to AVFrames instead of whole structs
The most interesting parts are initialization in ff_MPV_common_init() and
uninitialization in ff_MPV_common_end().

ff_mpeg_unref_picture and ff_thread_release_buffer have additional NULL
checks for Picture.f, because these functions can be called on
uninitialized or partially initialized Pictures.

NULL pointer checks are added to ff_thread_release_buffer() stub function.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-09 02:12:19 +02:00
Michael Niedermayer
f87b3d5523 avcodec/pthread_frame: fix missing unlock on error
Fixes CID1197057
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 03:51:46 +02:00
Nicolas George
ea6825fd09 lavc/pthread: copy packet side data. 2014-03-08 12:27:02 +01:00
Michael Niedermayer
a22907e9ea Merge commit 'd1f9563d502037239185c11578cc614bdf0c5870'
* commit 'd1f9563d502037239185c11578cc614bdf0c5870':
  pthread_frame: flush all threads on flush, not just the first one

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 13:26:51 +01:00
Anton Khirnov
d1f9563d50 pthread_frame: flush all threads on flush, not just the first one
avcodec_flush_buffers() must release all internally held references
according to its documentation, for which all the threads need to be
flushed.

CC:libav-stable@libav.org
Bug-Id: vlc/9665
2014-02-28 21:55:46 +01:00
Michael Niedermayer
8367bc6be8 Merge commit '9cbf2d78f0a9c19129e7a70b2281a450d386c6d9'
* commit '9cbf2d78f0a9c19129e7a70b2281a450d386c6d9':
  pthread_frame: unref decoded frames on failure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 17:01:20 +01:00
Anton Khirnov
9cbf2d78f0 pthread_frame: unref decoded frames on failure
This is similar to what the non-threaded code already does.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:25:55 +01:00
Michael Niedermayer
11679e1b90 avcodec/pthread_frame: Fix memleak of AVCodecContext on error
Fixes CID1135767
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 00:27:09 +01:00
Michael Niedermayer
45fd4ec9ef Merge commit 'd351ef47d0e0ccb7de96b37f137c16b2885580ac'
* commit 'd351ef47d0e0ccb7de96b37f137c16b2885580ac':
  pthread_frame: use the AVFrame API properly.

Conflicts:
	libavcodec/pthread_frame.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 13:25:17 +01:00
Anton Khirnov
d351ef47d0 pthread_frame: use the AVFrame API properly.
Remove the extended_data workaround, all decoders should now handle this
properly.
2013-12-09 08:42:25 +01:00
Hendrik Leppkes
841c0aafa5 avcodec/pthread: check packet buffer allocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-25 02:22:43 +01:00
Michael Niedermayer
56e122787e Merge commit 'a553c6a347d3d28d7ee44c3df3d5c4ee780dba23'
* commit 'a553c6a347d3d28d7ee44c3df3d5c4ee780dba23':
  lavc: use buf[0] instead of data[0] in checks whether a frame is allocated

Conflicts:
	libavcodec/h264_refs.c
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 03:56:53 +01:00
Anton Khirnov
a553c6a347 lavc: use buf[0] instead of data[0] in checks whether a frame is allocated
data[0] may be NULL for valid frames with hwaccel pixel formats.
2013-11-18 18:09:48 +01:00
Michael Niedermayer
ab71be0912 Merge commit 'da6506c607eda585ba4b15430cf3c9a2ce09c3a9'
* commit 'da6506c607eda585ba4b15430cf3c9a2ce09c3a9':
  lavc: move AVCodecContext.pkt to AVCodecInternal

Conflicts:
	libavcodec/internal.h
	libavcodec/rawdec.c
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 11:41:55 +01:00
Michael Niedermayer
3fc26d8073 Merge commit '38ecc3702dabbea09230f6d6333f59e74f5d1c12'
* commit '38ecc3702dabbea09230f6d6333f59e74f5d1c12':
  pthread: store thread contexts in AVCodecInternal instead of AVCodecContext

Conflicts:
	libavcodec/internal.h
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 11:14:38 +01:00
Michael Niedermayer
4eea41cba1 Merge commit 'cc14ee03a7b91c69343f8d60c9e089a1950eeadb'
* commit 'cc14ee03a7b91c69343f8d60c9e089a1950eeadb':
  lavc: split slice and frame threading functions into separate files

Conflicts:
	libavcodec/Makefile
	libavcodec/pthread.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 10:44:34 +01:00
Anton Khirnov
da6506c607 lavc: move AVCodecContext.pkt to AVCodecInternal
It's a private field, not meant to be accessed from outside lavc.
2013-11-04 08:51:26 +01:00
Anton Khirnov
38ecc3702d pthread: store thread contexts in AVCodecInternal instead of AVCodecContext
It's a private field, it should not be visible to callers.

Deprecate AVCodecContext.thread_opaque
2013-11-04 08:51:26 +01:00
Anton Khirnov
cc14ee03a7 lavc: split slice and frame threading functions into separate files 2013-11-04 08:51:26 +01:00