* Dump the libavformat string again in Sniff().

* Separate TRACE output for seeking related methods.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31435 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus 2009-07-06 22:52:49 +00:00
parent a78909c607
commit 5d9b65c488

View File

@ -31,10 +31,12 @@ extern "C" {
#ifdef TRACE_AVFORMAT_READER #ifdef TRACE_AVFORMAT_READER
# define TRACE printf # define TRACE printf
# define TRACE_IO(a...) # define TRACE_IO(a...)
# define TRACE_SEEK(a...)
# define TRACE_PACKET(a...) # define TRACE_PACKET(a...)
#else #else
# define TRACE(a...) # define TRACE(a...)
# define TRACE_IO(a...) # define TRACE_IO(a...)
# define TRACE_SEEK(a...)
# define TRACE_PACKET(a...) # define TRACE_PACKET(a...)
#endif #endif
@ -547,12 +549,12 @@ AVFormatReader::StreamCookie::Seek(uint32 flags, int64* frame,
return B_NO_INIT; return B_NO_INIT;
if ((flags & B_MEDIA_SEEK_CLOSEST_FORWARD) != 0) { if ((flags & B_MEDIA_SEEK_CLOSEST_FORWARD) != 0) {
TRACE(" AVFormatReader::Seek() - B_MEDIA_SEEK_CLOSEST_FORWARD " TRACE_SEEK(" AVFormatReader::Seek() - B_MEDIA_SEEK_CLOSEST_FORWARD "
"not supported.\n"); "not supported.\n");
return B_NOT_SUPPORTED; return B_NOT_SUPPORTED;
} }
TRACE("AVFormatReader::StreamCookie::Seek(%ld, %s %s %s %s, %lld, " TRACE_SEEK("AVFormatReader::StreamCookie::Seek(%ld, %s %s %s %s, %lld, "
"%lld)\n", Index(), "%lld)\n", Index(),
(flags & B_MEDIA_SEEK_TO_FRAME) ? "B_MEDIA_SEEK_TO_FRAME" : "", (flags & B_MEDIA_SEEK_TO_FRAME) ? "B_MEDIA_SEEK_TO_FRAME" : "",
(flags & B_MEDIA_SEEK_TO_TIME) ? "B_MEDIA_SEEK_TO_TIME" : "", (flags & B_MEDIA_SEEK_TO_TIME) ? "B_MEDIA_SEEK_TO_TIME" : "",
@ -572,11 +574,11 @@ AVFormatReader::StreamCookie::Seek(uint32 flags, int64* frame,
} else } else
timeStamp = (int64_t)(*time / timeBase / 1000000.0); timeStamp = (int64_t)(*time / timeBase / 1000000.0);
TRACE(" time: %.2fs -> %lld, current DTS: %lld (time_base: %f)\n", TRACE_SEEK(" time: %.2fs -> %lld, current DTS: %lld (time_base: %f)\n",
*time / 1000000.0, timeStamp, fStream->cur_dts, timeBase); *time / 1000000.0, timeStamp, fStream->cur_dts, timeBase);
if (av_seek_frame(fContext, Index(), timeStamp, 0) < 0) { if (av_seek_frame(fContext, Index(), timeStamp, 0) < 0) {
TRACE(" av_seek_frame() failed.\n"); TRACE_SEEK(" av_seek_frame() failed.\n");
return B_ERROR; return B_ERROR;
} }
@ -595,8 +597,8 @@ AVFormatReader::StreamCookie::FindKeyFrame(uint32 flags, int64* frame,
if (fContext == NULL || fStream == NULL) if (fContext == NULL || fStream == NULL)
return B_NO_INIT; return B_NO_INIT;
TRACE("AVFormatReader::StreamCookie::FindKeyFrame(%ld, %s %s %s %s, %lld, " TRACE_SEEK("AVFormatReader::StreamCookie::FindKeyFrame(%ld, %s %s %s %s, "
"%lld)\n", Index(), "%lld, %lld)\n", Index(),
(flags & B_MEDIA_SEEK_TO_FRAME) ? "B_MEDIA_SEEK_TO_FRAME" : "", (flags & B_MEDIA_SEEK_TO_FRAME) ? "B_MEDIA_SEEK_TO_FRAME" : "",
(flags & B_MEDIA_SEEK_TO_TIME) ? "B_MEDIA_SEEK_TO_TIME" : "", (flags & B_MEDIA_SEEK_TO_TIME) ? "B_MEDIA_SEEK_TO_TIME" : "",
(flags & B_MEDIA_SEEK_CLOSEST_BACKWARD) ? "B_MEDIA_SEEK_CLOSEST_BACKWARD" : "", (flags & B_MEDIA_SEEK_CLOSEST_BACKWARD) ? "B_MEDIA_SEEK_CLOSEST_BACKWARD" : "",
@ -616,7 +618,7 @@ AVFormatReader::StreamCookie::FindKeyFrame(uint32 flags, int64* frame,
} else } else
timeStamp = (int64_t)(*time / timeBase / 1000000.0); timeStamp = (int64_t)(*time / timeBase / 1000000.0);
TRACE(" time: %.2fs -> %lld (time_base: %f)\n", *time / 1000000.0, TRACE_SEEK(" time: %.2fs -> %lld (time_base: %f)\n", *time / 1000000.0,
timeStamp, timeBase); timeStamp, timeBase);
int searchFlags = AVSEEK_FLAG_BACKWARD; int searchFlags = AVSEEK_FLAG_BACKWARD;
@ -625,7 +627,7 @@ AVFormatReader::StreamCookie::FindKeyFrame(uint32 flags, int64* frame,
int index = av_index_search_timestamp(fStream, timeStamp, searchFlags); int index = av_index_search_timestamp(fStream, timeStamp, searchFlags);
if (index < 0) { if (index < 0) {
TRACE(" av_index_search_timestamp() failed.\n"); TRACE_SEEK(" av_index_search_timestamp() failed.\n");
// Just seek to the beginning of the stream and assume it is a // Just seek to the beginning of the stream and assume it is a
// keyframe... // keyframe...
*frame = 0; *frame = 0;
@ -637,10 +639,10 @@ AVFormatReader::StreamCookie::FindKeyFrame(uint32 flags, int64* frame,
timeStamp = entry.timestamp; timeStamp = entry.timestamp;
*time = (bigtime_t)(timeStamp * 1000000.0 * timeBase); *time = (bigtime_t)(timeStamp * 1000000.0 * timeBase);
TRACE(" seeked time: %.2fs (%lld)\n", *time / 1000000.0, timeStamp); TRACE_SEEK(" seeked time: %.2fs (%lld)\n", *time / 1000000.0, timeStamp);
if ((flags & B_MEDIA_SEEK_TO_FRAME) != 0) { if ((flags & B_MEDIA_SEEK_TO_FRAME) != 0) {
*frame = timeStamp;//*time * frameRate / 1000000LL; *frame = timeStamp;//*time * frameRate / 1000000LL;
TRACE(" seeked frame: %lld\n", *frame); TRACE_SEEK(" seeked frame: %lld\n", *frame);
} }
return B_OK; return B_OK;
@ -871,6 +873,10 @@ AVFormatReader::Sniff(int32* _streamCount)
fStreams[0] = stream; fStreams[0] = stream;
streamDeleter.Detach(); streamDeleter.Detach();
#ifdef TRACE_AVFORMAT_READER
dump_format(const_cast<AVFormatContext*>(stream->Context()), 0, "", 0);
#endif
if (_streamCount != NULL) if (_streamCount != NULL)
*_streamCount = streamCount; *_streamCount = streamCount;
@ -1046,7 +1052,7 @@ status_t
AVFormatReader::Seek(void* _cookie, uint32 seekTo, int64* frame, AVFormatReader::Seek(void* _cookie, uint32 seekTo, int64* frame,
bigtime_t* time) bigtime_t* time)
{ {
TRACE("AVFormatReader::Seek()\n"); TRACE_SEEK("AVFormatReader::Seek()\n");
BAutolock _(fStreamLock); BAutolock _(fStreamLock);
@ -1059,7 +1065,7 @@ status_t
AVFormatReader::FindKeyFrame(void* _cookie, uint32 flags, int64* frame, AVFormatReader::FindKeyFrame(void* _cookie, uint32 flags, int64* frame,
bigtime_t* time) bigtime_t* time)
{ {
TRACE("AVFormatReader::FindKeyFrame()\n"); TRACE_SEEK("AVFormatReader::FindKeyFrame()\n");
BAutolock _(fStreamLock); BAutolock _(fStreamLock);