Skip to content

Commit edb948b

Browse files
James DongAndroid (Google) Code Review
authored andcommitted
Merge "Changed TimedTextInBandSource to TimedText3GPPSource."
2 parents 5d5b378 + 0de4783 commit edb948b

File tree

4 files changed

+51
-48
lines changed

4 files changed

+51
-48
lines changed

media/libstagefright/timedtext/Android.mk

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,15 @@ include $(CLEAR_VARS)
44
LOCAL_SRC_FILES:= \
55
TextDescriptions.cpp \
66
TimedTextDriver.cpp \
7-
TimedTextInBandSource.cpp \
7+
TimedText3GPPSource.cpp \
88
TimedTextSource.cpp \
99
TimedTextSRTSource.cpp \
1010
TimedTextPlayer.cpp
1111

1212
LOCAL_CFLAGS += -Wno-multichar
1313
LOCAL_C_INCLUDES:= \
1414
$(JNI_H_INCLUDE) \
15-
$(TOP)/frameworks/base/media/libstagefright \
16-
$(TOP)/frameworks/base/include/media/stagefright/openmax
15+
$(TOP)/frameworks/base/media/libstagefright
1716

1817
LOCAL_MODULE:= libstagefright_timedtext
1918

media/libstagefright/timedtext/TimedTextInBandSource.cpp renamed to media/libstagefright/timedtext/TimedText3GPPSource.cpp

Lines changed: 31 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616

1717
//#define LOG_NDEBUG 0
18-
#define LOG_TAG "TimedTextInBandSource"
18+
#define LOG_TAG "TimedText3GPPSource"
1919
#include <utils/Log.h>
2020

2121
#include <binder/Parcel.h>
@@ -26,19 +26,19 @@
2626
#include <media/stagefright/MediaSource.h>
2727
#include <media/stagefright/MetaData.h>
2828

29-
#include "TimedTextInBandSource.h"
29+
#include "TimedText3GPPSource.h"
3030
#include "TextDescriptions.h"
3131

3232
namespace android {
3333

34-
TimedTextInBandSource::TimedTextInBandSource(const sp<MediaSource>& mediaSource)
34+
TimedText3GPPSource::TimedText3GPPSource(const sp<MediaSource>& mediaSource)
3535
: mSource(mediaSource) {
3636
}
3737

38-
TimedTextInBandSource::~TimedTextInBandSource() {
38+
TimedText3GPPSource::~TimedText3GPPSource() {
3939
}
4040

41-
status_t TimedTextInBandSource::read(
41+
status_t TimedText3GPPSource::read(
4242
int64_t *timeUs, Parcel *parcel, const MediaSource::ReadOptions *options) {
4343
MediaBuffer *textBuffer = NULL;
4444
status_t err = mSource->read(&textBuffer, options);
@@ -60,59 +60,54 @@ status_t TimedTextInBandSource::read(
6060
// text style for the string of text. These descriptions are present only
6161
// if they are needed. This method is used to extract the modifier
6262
// description and append it at the end of the text.
63-
status_t TimedTextInBandSource::extractAndAppendLocalDescriptions(
63+
status_t TimedText3GPPSource::extractAndAppendLocalDescriptions(
6464
int64_t timeUs, const MediaBuffer *textBuffer, Parcel *parcel) {
6565
const void *data;
6666
size_t size = 0;
6767
int32_t flag = TextDescriptions::LOCAL_DESCRIPTIONS;
6868

6969
const char *mime;
7070
CHECK(mSource->getFormat()->findCString(kKeyMIMEType, &mime));
71+
CHECK(strcasecmp(mime, MEDIA_MIMETYPE_TEXT_3GPP) == 0);
7172

72-
if (strcasecmp(mime, MEDIA_MIMETYPE_TEXT_3GPP) == 0) {
73-
data = textBuffer->data();
74-
size = textBuffer->size();
75-
76-
if (size > 0) {
77-
parcel->freeData();
78-
flag |= TextDescriptions::IN_BAND_TEXT_3GPP;
79-
return TextDescriptions::getParcelOfDescriptions(
80-
(const uint8_t *)data, size, flag, timeUs / 1000, parcel);
81-
}
82-
return OK;
73+
data = textBuffer->data();
74+
size = textBuffer->size();
75+
76+
if (size > 0) {
77+
parcel->freeData();
78+
flag |= TextDescriptions::IN_BAND_TEXT_3GPP;
79+
return TextDescriptions::getParcelOfDescriptions(
80+
(const uint8_t *)data, size, flag, timeUs / 1000, parcel);
8381
}
84-
return ERROR_UNSUPPORTED;
82+
return OK;
8583
}
8684

8785
// To extract and send the global text descriptions for all the text samples
8886
// in the text track or text file.
8987
// TODO: send error message to application via notifyListener()...?
90-
status_t TimedTextInBandSource::extractGlobalDescriptions(Parcel *parcel) {
88+
status_t TimedText3GPPSource::extractGlobalDescriptions(Parcel *parcel) {
9189
const void *data;
9290
size_t size = 0;
9391
int32_t flag = TextDescriptions::GLOBAL_DESCRIPTIONS;
9492

9593
const char *mime;
9694
CHECK(mSource->getFormat()->findCString(kKeyMIMEType, &mime));
95+
CHECK(strcasecmp(mime, MEDIA_MIMETYPE_TEXT_3GPP) == 0);
96+
97+
uint32_t type;
98+
// get the 'tx3g' box content. This box contains the text descriptions
99+
// used to render the text track
100+
if (!mSource->getFormat()->findData(
101+
kKeyTextFormatData, &type, &data, &size)) {
102+
return ERROR_MALFORMED;
103+
}
97104

98-
// support 3GPP only for now
99-
if (strcasecmp(mime, MEDIA_MIMETYPE_TEXT_3GPP) == 0) {
100-
uint32_t type;
101-
// get the 'tx3g' box content. This box contains the text descriptions
102-
// used to render the text track
103-
if (!mSource->getFormat()->findData(
104-
kKeyTextFormatData, &type, &data, &size)) {
105-
return ERROR_MALFORMED;
106-
}
107-
108-
if (size > 0) {
109-
flag |= TextDescriptions::IN_BAND_TEXT_3GPP;
110-
return TextDescriptions::getParcelOfDescriptions(
111-
(const uint8_t *)data, size, flag, 0, parcel);
112-
}
113-
return OK;
105+
if (size > 0) {
106+
flag |= TextDescriptions::IN_BAND_TEXT_3GPP;
107+
return TextDescriptions::getParcelOfDescriptions(
108+
(const uint8_t *)data, size, flag, 0, parcel);
114109
}
115-
return ERROR_UNSUPPORTED;
110+
return OK;
116111
}
117112

118113
} // namespace android

media/libstagefright/timedtext/TimedTextInBandSource.h renamed to media/libstagefright/timedtext/TimedText3GPPSource.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
* limitations under the License.
1515
*/
1616

17-
#ifndef TIMED_TEXT_IN_BAND_SOURCE_H_
18-
#define TIMED_TEXT_IN_BAND_SOURCE_H_
17+
#ifndef TIMED_TEXT_3GPP_SOURCE_H_
18+
#define TIMED_TEXT_3GPP_SOURCE_H_
1919

2020
#include <media/stagefright/MediaErrors.h>
2121
#include <media/stagefright/MediaSource.h>
@@ -27,9 +27,9 @@ namespace android {
2727
class MediaBuffer;
2828
class Parcel;
2929

30-
class TimedTextInBandSource : public TimedTextSource {
30+
class TimedText3GPPSource : public TimedTextSource {
3131
public:
32-
TimedTextInBandSource(const sp<MediaSource>& mediaSource);
32+
TimedText3GPPSource(const sp<MediaSource>& mediaSource);
3333
virtual status_t start() { return mSource->start(); }
3434
virtual status_t stop() { return mSource->stop(); }
3535
virtual status_t read(
@@ -39,17 +39,17 @@ class TimedTextInBandSource : public TimedTextSource {
3939
virtual status_t extractGlobalDescriptions(Parcel *parcel);
4040

4141
protected:
42-
virtual ~TimedTextInBandSource();
42+
virtual ~TimedText3GPPSource();
4343

4444
private:
4545
sp<MediaSource> mSource;
4646

4747
status_t extractAndAppendLocalDescriptions(
4848
int64_t timeUs, const MediaBuffer *textBuffer, Parcel *parcel);
4949

50-
DISALLOW_EVIL_CONSTRUCTORS(TimedTextInBandSource);
50+
DISALLOW_EVIL_CONSTRUCTORS(TimedText3GPPSource);
5151
};
5252

5353
} // namespace android
5454

55-
#endif // TIMED_TEXT_IN_BAND_SOURCE_H_
55+
#endif // TIMED_TEXT_3GPP_SOURCE_H_

media/libstagefright/timedtext/TimedTextSource.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,29 @@
1818
#define LOG_TAG "TimedTextSource"
1919
#include <utils/Log.h>
2020

21+
#include <media/stagefright/foundation/ADebug.h> // CHECK_XX macro
2122
#include <media/stagefright/DataSource.h>
23+
#include <media/stagefright/MediaDefs.h> // for MEDIA_MIMETYPE_xxx
2224
#include <media/stagefright/MediaSource.h>
25+
#include <media/stagefright/MetaData.h>
2326

2427
#include "TimedTextSource.h"
2528

26-
#include "TimedTextInBandSource.h"
29+
#include "TimedText3GPPSource.h"
2730
#include "TimedTextSRTSource.h"
2831

2932
namespace android {
3033

3134
// static
3235
sp<TimedTextSource> TimedTextSource::CreateTimedTextSource(
3336
const sp<MediaSource>& mediaSource) {
34-
return new TimedTextInBandSource(mediaSource);
37+
const char *mime;
38+
CHECK(mediaSource->getFormat()->findCString(kKeyMIMEType, &mime));
39+
if (strcasecmp(mime, MEDIA_MIMETYPE_TEXT_3GPP) == 0) {
40+
return new TimedText3GPPSource(mediaSource);
41+
}
42+
ALOGE("Unsupported mime type for subtitle. : %s", mime);
43+
return NULL;
3544
}
3645

3746
// static

0 commit comments

Comments
 (0)